From 9a2a3992437cbc261077e8fcb92cc5c9721d010d Mon Sep 17 00:00:00 2001 From: GeorgiyX <34867130+GeorgiyX@users.noreply.github.com> Date: Sat, 25 Dec 2021 00:33:53 +0300 Subject: [PATCH] =?UTF-8?q?LDBR-4.62:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B1=D0=B0=D0=B3,=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=BE=D0=BC=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=81=D1=8C=20=D0=B0=D1=82=D1=82=D0=B0=D1=87=D0=B8=20=D1=81=20?= =?UTF-8?q?=D1=80=D1=83=D1=81=D1=81=D0=BA=D0=B8=D0=BC=D0=B8=20=D0=BD=D0=B5?= =?UTF-8?q?=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC=D0=B8=20(#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sw.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/sw.js b/src/sw.js index 60a3be3..bbdf5a4 100644 --- a/src/sw.js +++ b/src/sw.js @@ -1,4 +1,14 @@ +/* eslint-disable quote-props */ import {ServiceWorker} from './constants/constants'; +const cyrillicMap = {'Ё': 'YO', 'Й': 'I', 'Ц': 'TS', 'У': 'U', 'К': 'K', 'Е': 'E', 'Н': 'N', + 'Г': 'G', 'Ш': 'SH', 'Щ': 'SCH', 'З': 'Z', 'Х': 'H', 'Ъ': '\'', 'ё': 'yo', + 'й': 'i', 'ц': 'ts', 'у': 'u', 'к': 'k', 'е': 'e', 'н': 'n', 'г': 'g', 'ш': 'sh', + 'щ': 'sch', 'з': 'z', 'х': 'h', 'ъ': '\'', 'Ф': 'F', 'Ы': 'I', 'В': 'V', 'А': 'a', + 'П': 'P', 'Р': 'R', 'О': 'O', 'Л': 'L', 'Д': 'D', 'Ж': 'ZH', 'Э': 'E', 'ф': 'f', + 'ы': 'i', 'в': 'v', 'а': 'a', 'п': 'p', 'р': 'r', 'о': 'o', 'л': 'l', 'д': 'd', + 'ж': 'zh', 'э': 'e', 'Я': 'Ya', 'Ч': 'CH', 'С': 'S', 'М': 'M', 'И': 'I', 'Т': 'T', + 'Ь': '\'', 'Б': 'B', 'Ю': 'YU', 'я': 'ya', 'ч': 'ch', 'с': 's', 'м': 'm', 'и': 'i', + 'т': 't', 'ь': '\'', 'б': 'b', 'ю': 'yu'}; const STATIC_FILES_URL = (self.__WB_MANIFEST || []).map((pair) => { return pair.url; @@ -124,7 +134,7 @@ async function networkFirst(request, clientId, cacheName) { async function fetchAttachment(request) { const url = new URL(request.url); url.pathname = url.pathname.replace(ServiceWorker.ATTACHMENT_PREFIX, ''); - const fileName = url.searchParams.get(ServiceWorker.ATTACH_NAME_PARAM); + const fileName = cyrillic2ascii(url.searchParams.get(ServiceWorker.ATTACH_NAME_PARAM)); url.searchParams.delete(ServiceWorker.ATTACH_NAME_PARAM); try { console.log('url to fetch attach: ' + url.toString()); @@ -167,3 +177,14 @@ async function sendMessage(clientId, messageType, url) { url, }); } + +/** + * Функция замещает кириллические символы на латинские. Т.к. HTTP не пропускает Non-ASCII + * @param {String} word строка на проверку + * @return {*} + */ +function cyrillic2ascii(word) { + return word.split('').map(function(char) { + return cyrillicMap[char] || char; + }).join(''); +}