aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--_locales/ru/messages.json130
-rw-r--r--utils.js14
3 files changed, 146 insertions, 2 deletions
diff --git a/README.md b/README.md
index 6ca1eb4c..4fef9c04 100644
--- a/README.md
+++ b/README.md
@@ -7,9 +7,9 @@ SponsorBlock is an extension that will skip over sponsored segments of YouTube v
# Available for Chrome and Firefox
-Chrome: https://chrome.google.com/webstore/detail/ajjollijmimolcncegpgkbilohbhjnhi
+Chrome: https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone
-Firefox: https://addons.mozilla.org/addon/sponsorblock/
+Firefox: [https://addons.mozilla.org/addon/sponsorblock/](https://addons.mozilla.org/addon/sponsorblock/?src=external-github)
# Server
diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json
new file mode 100644
index 00000000..4ef09dd8
--- /dev/null
+++ b/_locales/ru/messages.json
@@ -0,0 +1,130 @@
+{
+ "Name": {
+ "message": "SponsorBlock",
+ "description": "Название расширения, не переводится."
+ },
+ "fullName": {
+ "message": "SponsorBlock для YouTube - Пропускайте спонсорские вставки",
+ "description": "Название расширения."
+ },
+
+ "Description": {
+ "message": "Пропускайте спонсорские вставки в видео на YouTube. Сообщайте о спонсорских вставках в видео, которые Вы смотрите, чтобы сэкономить время других пользователей.",
+ "description": "Описание раширения."
+ },
+ "helpPage": {
+ "message": "index_en.html"
+ },
+ "400": {
+ "message": "Сервер отклонил этот запрос."
+ },
+ "429": {
+ "message": "Вы отправили слишком много спонсоров для этого видео. Вы уверены, что их так много?"
+ },
+ "409": {
+ "message": "Этот запрос был отправлен ранее."
+ },
+ "502": {
+ "message": "Сервер недоступен. Свяжитесь с разработчиком и сообщите ему об этом."
+ },
+ "channelWhitelisted": {
+ "message": "Канал добавлен в белый список!"
+ },
+ "Sponsor": {
+ "message": "Спонсор"
+ },
+ "Sponsors": {
+ "message": "Спонсоры"
+ },
+ "Segment": {
+ "message": "спонсорская вставка"
+ },
+ "Segments": {
+ "message": "спонсорские вставки"
+ },
+ "noticeTitle": {
+ "message": "Спонсор пропущен"
+ },
+ "reportButtonTitle": {
+ "message": "Ошибка"
+ },
+ "reportButtonInfo": {
+ "message": "Сообщить, что информация об этом спонсорском сегменте ошибочна."
+ },
+ "Dismiss": {
+ "message": "Закрыть"
+ },
+ "Loading": {
+ "message": "Загрузка..."
+ },
+ "Mins": {
+ "message": "мин"
+ },
+ "Secs": {
+ "message": "сек"
+ },
+ "Hide": {
+ "message": "Не показывать"
+ },
+ "hitGoBack": {
+ "message": "Нажмите «Назад», чтобы вернуться обратно."
+ },
+ "unskip": {
+ "message": "Назад"
+ },
+ "reskip": {
+ "message": "Пропустить"
+ },
+ "paused": {
+ "message": "Пауза"
+ },
+ "confirmMSG": {
+ "message": "\n\nЧтобы изменить или удалить отдельные значения, нажмите кнопку «Информация» или откройте всплывающее окно расширения, щелкнув значок расширения в правом верхнем углу."
+ },
+ "clearThis": {
+ "message": "Вы уверены, что хотите удалить эту информацию?\n\n"
+ },
+ "Unknown": {
+ "message": "При отправке отчета о спонсорском сегменте произошла ошибка. Попытайтесь отправить его позже."
+ },
+
+ "sponsorFound": {
+ "message": "Спонсоры этого видео уже находятся в базе данных!"
+ },
+ "sponsor404": {
+ "message": "Спонсорские вставки не найдены"
+ },
+ "sponsorStart": {
+ "message": "Спонсорская вставка начинается сейчас"
+ },
+ "sponsorEnd": {
+ "message": "Спонсорская вставка оканчивается сейчас"
+ },
+ "noVideoID": {
+ "message": "Возможно, это не вкладка YouTube, или Вы нажали слишком рано. \n Если это вкладка YouTube,\n закройте это всплывающее окно и откройте его снова."
+ },
+ "success": {
+ "message": "Успех!"
+ },
+ "voted": {
+ "message": "Голос засчитан!"
+ },
+ "voteFail": {
+ "message": "Вы уже проголосовали таким образом раньше."
+ },
+ "serverDown": {
+ "message": "Кажется, сервер не работает. Свяжитесь с разработчиком."
+ },
+ "connectionError": {
+ "message": "Ошибка соединения. Код ошибки: "
+ },
+ "wantToSubmit": {
+ "message": "Вы точно хотите отправить отчёт о спонсорских вставках в видео с идентификатором"
+ },
+ "leftTimes": {
+ "message": "Вы ещё не отправили отчёты о некоторых спонсорских вставках. Хотите вернуться на эту страницу, чтобы отправить их (они не удаляются)."
+ },
+ "submitCheck": {
+ "message": "Вы уверены, что хотите отправить эту информацию?"
+ }
+}
diff --git a/utils.js b/utils.js
index dfc515f7..e0954047 100644
--- a/utils.js
+++ b/utils.js
@@ -1,3 +1,17 @@
+// Function that can be used to wait for a condition before returning
+async function wait(condition, timeout = 5000, check = 100) {
+ return await new Promise((resolve, reject) => {
+ setTimeout(() => {reject("TIMEOUT")}, timeout);
+ const interval = setInterval(() => {
+ let result = condition();
+ if (result !== false) {
+ resolve(result);
+ clearInterval(interval);
+ };
+ }, check);
+ });
+}
+
function getYouTubeVideoID(url) {
//Attempt to parse url
let urlObject = null;