diff --git a/assets/clipboard.js b/assets/clipboard.js index 5b62bf3..be661ef 100644 --- a/assets/clipboard.js +++ b/assets/clipboard.js @@ -1,34 +1,34 @@ -function fallbackCopyTextToClipboard(text) { - var textArea = document.createElement("textarea"); - textArea.value = text; - - // Avoid scrolling to bottom - textArea.style.top = "0"; - textArea.style.left = "0"; - textArea.style.position = "fixed"; - - document.body.appendChild(textArea); - textArea.focus(); - textArea.select(); - - try { - var successful = document.execCommand('copy'); - var msg = successful ? 'successful' : 'unsuccessful'; - console.log('Fallback: Copying text command was ' + msg); - } catch (err) { - console.error('Fallback: Oops, unable to copy', err); - } - - document.body.removeChild(textArea); -} -export function copyTextToClipboard(text) { - if (!navigator.clipboard) { - fallbackCopyTextToClipboard(text); - return; - } - navigator.clipboard.writeText(text).then(function() { - console.log('Async: Copying to clipboard was successful!'); - }, function(err) { - console.error('Async: Could not copy text: ', err); - }); +function fallbackCopyTextToClipboard(text) { + var textArea = document.createElement("textarea"); + textArea.value = text; + + // Avoid scrolling to bottom + textArea.style.top = "0"; + textArea.style.left = "0"; + textArea.style.position = "fixed"; + + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + try { + var successful = document.execCommand('copy'); + var msg = successful ? 'successful' : 'unsuccessful'; + console.log('Fallback: Copying text command was ' + msg); + } catch (err) { + console.error('Fallback: Oops, unable to copy', err); + } + + document.body.removeChild(textArea); +} +export function copyTextToClipboard(text) { + if (!navigator.clipboard) { + fallbackCopyTextToClipboard(text); + return; + } + navigator.clipboard.writeText(text).then(function() { + console.log('Async: Copying to clipboard was successful!'); + }, function(err) { + console.error('Async: Could not copy text: ', err); + }); } \ No newline at end of file diff --git a/assets/encode-converter.js b/assets/encode-converter.js index 710d257..60e0804 100644 --- a/assets/encode-converter.js +++ b/assets/encode-converter.js @@ -1,47 +1,47 @@ -if (!window.atob) { - var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var table = tableStr.split(""); - - window.atob = function (base64) { - if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character"); - base64 = base64.replace(/=/g, ""); - var n = base64.length & 3; - if (n === 1) throw new Error("String contains an invalid character"); - for (var i = 0, j = 0, len = base64.length / 4, bin = []; i < len; ++i) { - var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A"); - var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A"); - if ((a | b | c | d) < 0) throw new Error("String contains an invalid character"); - bin[bin.length] = ((a << 2) | (b >> 4)) & 255; - bin[bin.length] = ((b << 4) | (c >> 2)) & 255; - bin[bin.length] = ((c << 6) | d) & 255; - }; - return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4); - }; - - window.btoa = function (bin) { - for (var i = 0, j = 0, len = bin.length / 3, base64 = []; i < len; ++i) { - var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++); - if ((a | b | c) > 255) throw new Error("String contains an invalid character"); - base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] + - (isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) + - (isNaN(b + c) ? "=" : table[c & 63]); - } - return base64.join(""); - }; - -} - -export function hexToBase64(str) { - return btoa(String.fromCharCode.apply(null, - str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")) - ); -} - -export function base64ToHex(str) { - for (var i = 0, bin = atob(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) { - var tmp = bin.charCodeAt(i).toString(16); - if (tmp.length === 1) tmp = "0" + tmp; - hex[hex.length] = tmp; - } - return hex.join(" "); +if (!window.atob) { + var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var table = tableStr.split(""); + + window.atob = function (base64) { + if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character"); + base64 = base64.replace(/=/g, ""); + var n = base64.length & 3; + if (n === 1) throw new Error("String contains an invalid character"); + for (var i = 0, j = 0, len = base64.length / 4, bin = []; i < len; ++i) { + var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A"); + var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A"); + if ((a | b | c | d) < 0) throw new Error("String contains an invalid character"); + bin[bin.length] = ((a << 2) | (b >> 4)) & 255; + bin[bin.length] = ((b << 4) | (c >> 2)) & 255; + bin[bin.length] = ((c << 6) | d) & 255; + }; + return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4); + }; + + window.btoa = function (bin) { + for (var i = 0, j = 0, len = bin.length / 3, base64 = []; i < len; ++i) { + var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++); + if ((a | b | c) > 255) throw new Error("String contains an invalid character"); + base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] + + (isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) + + (isNaN(b + c) ? "=" : table[c & 63]); + } + return base64.join(""); + }; + +} + +export function hexToBase64(str) { + return btoa(String.fromCharCode.apply(null, + str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")) + ); +} + +export function base64ToHex(str) { + for (var i = 0, bin = atob(str.replace(/[ \r\n]+$/, "")), hex = []; i < bin.length; ++i) { + var tmp = bin.charCodeAt(i).toString(16); + if (tmp.length === 1) tmp = "0" + tmp; + hex[hex.length] = tmp; + } + return hex.join(" "); } \ No newline at end of file diff --git a/assets/main.css b/assets/main.css index 0fd8972..19d2ae2 100644 --- a/assets/main.css +++ b/assets/main.css @@ -1,101 +1,101 @@ -.carousel > .carousel-inner > .carousel-item > img { - width : 100vh; - height : calc(100vh - 56px); - /* height : 10vh; */ -} - -/*.main-window-alt { - width : 100vh; - height : calc(100vh - 56px); -}*/ - -.centered-el { - padding-top : 45vh; -} - -.bg { - background-color : #1A1A1A; -} - -.release-menu { - /* Margin */ - margin-left : 35vh; - margin-right : 35vh; - margin-top : 5vh; - /* Padding */ - padding-left : 5vh; - padding-right : 5vh; - padding-top : 5vh; - padding-bottom : 5vh; - /* Style */ - border-radius : 2.0vh; - background-color : #1F1F1F; -} - -.release-item { - /* Margin */ - margin-left : 5vh; - margin-right : 45vh; - margin-top : 5vh; - /* Padding */ - padding-left : 5vh; - padding-right : 5vh; - padding-top : 5vh; - padding-bottom : 5vh; - /* Style */ - border-radius : 2.0vh; - background-color : #252525; -} - -.sys-win-img { - margin-top: 24vh; - margin-bottom: 1vh; - width : 25vh; - height : 25vh; -} - -.blog-post-card { - border-radius : 25px; - background-color: #212121; - min-width: 250px; - min-height : 250px; - margin-left : 25%; - margin-right : 25%; -} - -.blog-post-image-carousel { - margin-left: 10%; - margin-right: 10%; - max-height: 512px; - overflow: hidden; -} - -.blog-post-image-carousel img { - object-fit: cover; -} - -.modal-img-view { - width: 1920px; - margin: auto; -} - -.password-manger-form { - margin-left : 30%; - margin-right : 30%; - padding : 10px; - padding-left : 65px; - padding-right : 65px; - border-radius : 15px; -} - -/* $accordion-color:green; */ -/* $accordion-padding-y:1.3rem; */ -/* $accordion-padding-x:2.5rem; */ -/* $accordion-border-color:black; */ -/* $accordion-border-width:3.5px; */ -/* $accordion-border-radius: 3rem; */ -/* $accordion-button-color:white; */ -/* $accordion-button-bg:green; */ -/* $accordion-button-active-bg: white; */ -/* $accordion-button-active-color:green; */ +.carousel > .carousel-inner > .carousel-item > img { + width : 100vh; + height : calc(100vh - 56px); + /* height : 10vh; */ +} + +/*.main-window-alt { + width : 100vh; + height : calc(100vh - 56px); +}*/ + +.centered-el { + padding-top : 45vh; +} + +.bg { + background-color : #1A1A1A; +} + +.release-menu { + /* Margin */ + margin-left : 35vh; + margin-right : 35vh; + margin-top : 5vh; + /* Padding */ + padding-left : 5vh; + padding-right : 5vh; + padding-top : 5vh; + padding-bottom : 5vh; + /* Style */ + border-radius : 2.0vh; + background-color : #1F1F1F; +} + +.release-item { + /* Margin */ + margin-left : 5vh; + margin-right : 45vh; + margin-top : 5vh; + /* Padding */ + padding-left : 5vh; + padding-right : 5vh; + padding-top : 5vh; + padding-bottom : 5vh; + /* Style */ + border-radius : 2.0vh; + background-color : #252525; +} + +.sys-win-img { + margin-top: 24vh; + margin-bottom: 1vh; + width : 25vh; + height : 25vh; +} + +.blog-post-card { + border-radius : 25px; + background-color: #212121; + min-width: 250px; + min-height : 250px; + margin-left : 25%; + margin-right : 25%; +} + +.blog-post-image-carousel { + margin-left: 10%; + margin-right: 10%; + max-height: 512px; + overflow: hidden; +} + +.blog-post-image-carousel img { + object-fit: cover; +} + +.modal-img-view { + width: 1920px; + margin: auto; +} + +.password-manger-form { + margin-left : 30%; + margin-right : 30%; + padding : 10px; + padding-left : 65px; + padding-right : 65px; + border-radius : 15px; +} + +/* $accordion-color:green; */ +/* $accordion-padding-y:1.3rem; */ +/* $accordion-padding-x:2.5rem; */ +/* $accordion-border-color:black; */ +/* $accordion-border-width:3.5px; */ +/* $accordion-border-radius: 3rem; */ +/* $accordion-button-color:white; */ +/* $accordion-button-bg:green; */ +/* $accordion-button-active-bg: white; */ +/* $accordion-button-active-color:green; */ /* @import "./node_modules/bootstrap/scss/bootstrap" */ \ No newline at end of file diff --git a/assets/main.csv b/assets/main.csv index 93fca83..042103d 100644 --- a/assets/main.csv +++ b/assets/main.csv @@ -1,4 +1,4 @@ -.carousel { - width:640px; - height:360px; +.carousel { + width:640px; + height:360px; } \ No newline at end of file diff --git a/assets/main.js b/assets/main.js index 44b89d4..9c43d37 100644 --- a/assets/main.js +++ b/assets/main.js @@ -1,91 +1,91 @@ -import { blog } from "./pages/blog.js"; -import { passwordManager } from "./pages/password-manager.js"; -/* Альтернативное главное меню */ -let altMenuSelectedPage = 1; -const altPages = [ - `
Добро пожаловать на мой ресурс

Это официальный ресурс FullGreaM.

`, - `
О проектах и работах
-

Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.

- `, - `
О прочей информации
-

Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.

- ` -]; -function setAltMenuPage(pageNumber) { - altMenuSelectedPage = pageNumber; - if (altMenuSelectedPage <= 0) { - altMenuSelectedPage = 3; - } - else if (altMenuSelectedPage > 3) { - altMenuSelectedPage = 1; - } - document.getElementsByTagName('body')[0].style.backgroundImage = `url("/assets/hello/m/${altMenuSelectedPage}.png")`; - document.getElementById('alt-carousel-viewer').innerHTML = altPages[altMenuSelectedPage - 1]; -}; -/* Альтернативное главное меню */ -setTimeout(async () => { - fl.go(window.location.pathname + location.search) -}, 50); - -let isMobile = window.screen.availWidth / window.screen.availHeight <= 1.45; - -function goFromMobileWarning () { - const currentURL = new URL(location.href); - if (!document.cookie.includes('warning_showed=true')) document.cookie += 'warning_showed=true;'; - fl.go(currentURL.searchParams.get("go")); -} - -if (isMobile && !document.cookie.includes('warning_showed=true')) { - // Я это уберу как только буду уверен, что на мобильной версии нет никаких проблем - fl.go('/mobile-warning?go=' + new URLSearchParams(location.pathname + location.search).toString().slice(0, -1)); -} - -fl.bindLoad('/blog', () => { - blog(); -}); -fl.bindLoad('/password-manager', () => { - passwordManager(); -}); - -fl.bindLoad('/main-mobile', () => { - document.getElementById('alt-main-prev').onclick = () => setAltMenuPage(altMenuSelectedPage - 1); - document.getElementById('alt-main-next').onclick = () => setAltMenuPage(altMenuSelectedPage + 1); -}); - -fl.bindLoad('/mobile-warning', () => { - document.getElementById('mobile-warning-go').onclick = () => goFromMobileWarning(); -}); - -let mainMenuErrorHandled = false; - -setInterval(async () => { -// setTimeout(async () => { - const navbarHeight = +(document.getElementById("navbar-main")?.offsetHeight); - if (!mainMenuErrorHandled && location.pathname == "/" && document.getElementById('main_img1')?.src) { - document.getElementById('main_img1').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/1.png" : "/assets/hello/m/1.png"; - document.getElementById('main_img2').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/2.png" : "/assets/hello/m/2.png"; - document.getElementById('main_img3').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/3.png" : "/assets/hello/m/3.png"; - } - const selectedCSS = Object.entries(document.styleSheets).filter(([key, cssFileObject]) => cssFileObject.href == `${location.origin}/assets/main.css`)[0][1]; - Object.entries(selectedCSS.rules).filter(([key, rule]) => rule.selectorText == '.carousel > .carousel-inner > .carousel-item > img')[0][1].style.height = `calc(100vh - ${navbarHeight}px)` - - const currHtml = document.getElementById('alt-carousel-viewer')?.innerHTML; - mainMenuErrorHandled = currHtml?.trim() == altPages[altMenuSelectedPage - 1]?.trim(); - - if (!mainMenuErrorHandled && window.screen.availWidth < 768 && location.pathname == "/") { // Обработка ошибки вёрстки на главной странице - mainMenuErrorHandled = true; - setTimeout(async () => { - fl.goJust('/main-mobile', false); - document.getElementsByTagName('body')[0].style.backgroundImage = 'url("/assets/hello/m/1.png")'; - }, 150); - } - else if (mainMenuErrorHandled && window.screen.availWidth >= 768 && location.pathname == "/") { // Вернуть нормальную версию вёрстки - mainMenuErrorHandled = false; - document.getElementsByTagName('body')[0].style.backgroundImage = ''; - fl.goJust('/', false); - } - else if (location.pathname !== "/") { - mainMenuErrorHandled = false; - document.getElementsByTagName('body')[0].style.backgroundImage = ''; - } +import { blog } from "./pages/blog.js"; +import { passwordManager } from "./pages/password-manager.js"; +/* Альтернативное главное меню */ +let altMenuSelectedPage = 1; +const altPages = [ + `
Добро пожаловать на мой ресурс

Это официальный ресурс FullGreaM.

`, + `
О проектах и работах
+

Здесь представлены мои проекты, работы с активными и актуальными ссылками на скачивание.

+ `, + `
О прочей информации
+

Также здесь представлен (или будет представлен) мой личный блог, а также, блог, касающийся моих проектов или проектов моей команды.

+ ` +]; +function setAltMenuPage(pageNumber) { + altMenuSelectedPage = pageNumber; + if (altMenuSelectedPage <= 0) { + altMenuSelectedPage = 3; + } + else if (altMenuSelectedPage > 3) { + altMenuSelectedPage = 1; + } + document.getElementsByTagName('body')[0].style.backgroundImage = `url("/assets/hello/m/${altMenuSelectedPage}.png")`; + document.getElementById('alt-carousel-viewer').innerHTML = altPages[altMenuSelectedPage - 1]; +}; +/* Альтернативное главное меню */ +setTimeout(async () => { + fl.go(window.location.pathname + location.search) +}, 50); + +let isMobile = window.screen.availWidth / window.screen.availHeight <= 1.45; + +function goFromMobileWarning () { + const currentURL = new URL(location.href); + if (!document.cookie.includes('warning_showed=true')) document.cookie += 'warning_showed=true;'; + fl.go(currentURL.searchParams.get("go")); +} + +if (isMobile && !document.cookie.includes('warning_showed=true')) { + // Я это уберу как только буду уверен, что на мобильной версии нет никаких проблем + fl.go('/mobile-warning?go=' + new URLSearchParams(location.pathname + location.search).toString().slice(0, -1)); +} + +fl.bindLoad('/blog', () => { + blog(); +}); +fl.bindLoad('/password-manager', () => { + passwordManager(); +}); + +fl.bindLoad('/main-mobile', () => { + document.getElementById('alt-main-prev').onclick = () => setAltMenuPage(altMenuSelectedPage - 1); + document.getElementById('alt-main-next').onclick = () => setAltMenuPage(altMenuSelectedPage + 1); +}); + +fl.bindLoad('/mobile-warning', () => { + document.getElementById('mobile-warning-go').onclick = () => goFromMobileWarning(); +}); + +let mainMenuErrorHandled = false; + +setInterval(async () => { +// setTimeout(async () => { + const navbarHeight = +(document.getElementById("navbar-main")?.offsetHeight); + if (!mainMenuErrorHandled && location.pathname == "/" && document.getElementById('main_img1')?.src) { + document.getElementById('main_img1').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/1.png" : "/assets/hello/m/1.png"; + document.getElementById('main_img2').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/2.png" : "/assets/hello/m/2.png"; + document.getElementById('main_img3').src = window.screen.availWidth / window.screen.availHeight > 1.45 ? "/assets/hello/3.png" : "/assets/hello/m/3.png"; + } + const selectedCSS = Object.entries(document.styleSheets).filter(([key, cssFileObject]) => cssFileObject.href == `${location.origin}/assets/main.css`)[0][1]; + Object.entries(selectedCSS.rules).filter(([key, rule]) => rule.selectorText == '.carousel > .carousel-inner > .carousel-item > img')[0][1].style.height = `calc(100vh - ${navbarHeight}px)` + + const currHtml = document.getElementById('alt-carousel-viewer')?.innerHTML; + mainMenuErrorHandled = currHtml?.trim() == altPages[altMenuSelectedPage - 1]?.trim(); + + if (!mainMenuErrorHandled && window.screen.availWidth < 768 && location.pathname == "/") { // Обработка ошибки вёрстки на главной странице + mainMenuErrorHandled = true; + setTimeout(async () => { + fl.goJust('/main-mobile', false); + document.getElementsByTagName('body')[0].style.backgroundImage = 'url("/assets/hello/m/1.png")'; + }, 150); + } + else if (mainMenuErrorHandled && window.screen.availWidth >= 768 && location.pathname == "/") { // Вернуть нормальную версию вёрстки + mainMenuErrorHandled = false; + document.getElementsByTagName('body')[0].style.backgroundImage = ''; + fl.goJust('/', false); + } + else if (location.pathname !== "/") { + mainMenuErrorHandled = false; + document.getElementsByTagName('body')[0].style.backgroundImage = ''; + } }, 1); \ No newline at end of file diff --git a/assets/pages/blog.js b/assets/pages/blog.js index e671630..8faeff7 100644 --- a/assets/pages/blog.js +++ b/assets/pages/blog.js @@ -1,122 +1,130 @@ -const blogpostsUrl = "/blog/posts.json"; - -function bindImageView (id, url) { - document.getElementById(id).onclick = () => { - const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {}); - imageModal.show(); - document.getElementById('image-viewer-url').src = url; - }; -} - -function testBlock () { - return; // uncomment this at realese - bindImageView('blog-img-0:0', 'https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg'); - bindImageView('blog-img-0:1', 'https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg'); - bindImageView('blog-img-0:2', 'https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg'); -} - -function dateFormater (value) { - value = value.toString(); - if (value.length === 1) value = '0' + value; - return value; -} - -function imagesDisplay (item, index) { - const items = item.attachments.images.map((imageUrl, imageId) => { - setTimeout(() => bindImageView(`blog-img-${index}:${imageId}`, imageUrl), 0); - return `
...
` - }); - const buttons = items.map((_, id) => ``); - return { items, buttons }; -} - -function generateItem (item, index) { - const date = new Date(item.date * 1000); - const images = item.attachments.images.length === 0 ? { - buttons : [], - items : [] - } : imagesDisplay(item, index); - // console.log(date); - - const page = `
-
-

${item.title}

- -
Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth())}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}
- -
-
-

${item.data.replace(/\n/g, "
")}

- -
- - - - -
- - - - - -
`; - - return page; -} - -export function blog () { - //testBlock(); - const xhr = new XMLHttpRequest(); - xhr.open('GET', blogpostsUrl, true); - - xhr.onerror = () => { - document.getElementById('blog-posts').innerHTML = `

Упс..

Во время работы произошла ошибка, повторите запрос позже

`; - } - - xhr.onload = () => { - try { - if (xhr.status === 200) { - // console.log(xhr.response); - const data = JSON.parse(xhr.response); - // console.log(data); - document.getElementById('blog-posts').innerHTML = '
'; - data.posts.sort((a, b) => b.date - a.date).forEach((item, index) => { - document.getElementById('blog-posts').innerHTML += generateItem(item, index); - }); - } - else { - xhr.onerror(); - } - } - catch (err) { - console.log(err); - return xhr.onerror(); - } - }; - - xhr.send(); -} \ No newline at end of file +const blogpostsUrl = "/blog/posts.json"; + +function bindImageView (id, url) { + document.getElementById(id).onclick = () => { + const imageModal = new bootstrap.Modal(document.getElementById('imageModal'), {}); + imageModal.show(); + document.getElementById('image-viewer-url').src = url; + }; +} + +function testBlock () { + return; // uncomment this at realese + bindImageView('blog-img-0:0', 'https://warhammerart.com/wp-content/uploads/2021/08/Adeptus-Mechanicus.jpg'); + bindImageView('blog-img-0:1', 'https://warzonestudio.com/image/catalog/blog/Admech-review/Admech-codex-review-02.jpg'); + bindImageView('blog-img-0:2', 'https://i.pinimg.com/originals/7a/5c/0a/7a5c0a3a91db6011a49781c4016124a2.jpg'); +} + +function dateFormater (value, isMonth = false) { + if (isMonth) { + return [ + "01", "02", "03", + "04", "05", "06", + "07", "08", "09", + "10", "11", "12" + ][+value]; + } + value = value.toString(); + if (value.length === 1) value = '0' + value; + return value; +} + +function imagesDisplay (item, index) { + const items = item.attachments.images.map((imageUrl, imageId) => { + setTimeout(() => bindImageView(`blog-img-${index}:${imageId}`, imageUrl), 0); + return `
...
` + }); + const buttons = items.map((_, id) => ``); + return { items, buttons }; +} + +function generateItem (item, index) { + const date = new Date(item.date * 1000); + const images = item.attachments.images.length === 0 ? { + buttons : [], + items : [] + } : imagesDisplay(item, index); + // console.log(date); + + const page = `
+
+

${item.title}

+ +
Опубликовано: ${dateFormater(date.getDate())}.${dateFormater(date.getMonth(), true)}.${date.getFullYear()} в ${date.getHours()}:${dateFormater(date.getMinutes())}
+ +
+
+

${item.data.replace(/\n/g, "
")}

+ +
+ + + + +
+ + + + + +
`; + + return page; +} + +export function blog () { + //testBlock(); + const xhr = new XMLHttpRequest(); + xhr.open('GET', blogpostsUrl, true); + + xhr.onerror = () => { + document.getElementById('blog-posts').innerHTML = `

Упс..

Во время работы произошла ошибка, повторите запрос позже

`; + } + + xhr.onload = () => { + try { + if (xhr.status === 200) { + // console.log(xhr.response); + const data = JSON.parse(xhr.response); + // console.log(data); + document.getElementById('blog-posts').innerHTML = '
'; + data.posts.sort((a, b) => b.date - a.date).forEach((item, index) => { + document.getElementById('blog-posts').innerHTML += generateItem(item, index); + }); + } + else { + xhr.onerror(); + } + } + catch (err) { + console.log(err); + return xhr.onerror(); + } + }; + + xhr.send(); +} diff --git a/assets/pages/password-manager.js b/assets/pages/password-manager.js index 0008239..ba517a4 100644 --- a/assets/pages/password-manager.js +++ b/assets/pages/password-manager.js @@ -1,18 +1,18 @@ -import {} from "/assets/sha1.js"; -import { hexToBase64 } from "/assets/encode-converter.js"; -import { copyTextToClipboard } from "/assets/clipboard.js"; - -function generatePassword () { - const generatedPasswordElement = document.getElementById('generated-password'); - const keyword = document.getElementById('keyword').value; - const service = document.getElementById('service').value.toLowerCase();; - const login = document.getElementById('login').value.toLowerCase();; - - const generatedPassword = hexToBase64(sha1(`${keyword}::${service}::${login}`)) + "#"; - generatedPasswordElement.value = generatedPassword; -} - -export function passwordManager () { - document.getElementById('generate-password').onclick = generatePassword; - document.getElementById('copy-password').onclick = () => copyTextToClipboard(document.getElementById('generated-password').value); +import {} from "/assets/sha1.js"; +import { hexToBase64 } from "/assets/encode-converter.js"; +import { copyTextToClipboard } from "/assets/clipboard.js"; + +function generatePassword () { + const generatedPasswordElement = document.getElementById('generated-password'); + const keyword = document.getElementById('keyword').value; + const service = document.getElementById('service').value.toLowerCase();; + const login = document.getElementById('login').value.toLowerCase();; + + const generatedPassword = hexToBase64(sha1(`${keyword}::${service}::${login}`)) + "#"; + generatedPasswordElement.value = generatedPassword; +} + +export function passwordManager () { + document.getElementById('generate-password').onclick = generatePassword; + document.getElementById('copy-password').onclick = () => copyTextToClipboard(document.getElementById('generated-password').value); } \ No newline at end of file diff --git a/assets/posts/photo_2024-05-28_21-15-13.jpg b/assets/posts/photo_2024-05-28_21-15-13.jpg new file mode 100644 index 0000000..85f497c Binary files /dev/null and b/assets/posts/photo_2024-05-28_21-15-13.jpg differ diff --git a/assets/sha1.js b/assets/sha1.js index 79bab00..fbb0d33 100644 --- a/assets/sha1.js +++ b/assets/sha1.js @@ -1,489 +1,489 @@ -/* - * [js-sha1]{@link https://github.com/emn178/js-sha1} - * - * @version 0.6.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2014-2017 - * @license MIT - */ -!(function () { - "use strict"; - function t(t) { - t - ? ((f[0] = - f[16] = - f[1] = - f[2] = - f[3] = - f[4] = - f[5] = - f[6] = - f[7] = - f[8] = - f[9] = - f[10] = - f[11] = - f[12] = - f[13] = - f[14] = - f[15] = - 0), - (this.blocks = f)) - : (this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), - (this.h0 = 1732584193), - (this.h1 = 4023233417), - (this.h2 = 2562383102), - (this.h3 = 271733878), - (this.h4 = 3285377520), - (this.block = this.start = this.bytes = this.hBytes = 0), - (this.finalized = this.hashed = !1), - (this.first = !0); - } - var h = "object" == typeof window ? window : {}, - s = - !h.JS_SHA1_NO_NODE_JS && - "object" == typeof process && - process.versions && - process.versions.node; - s && (h = global); - var i = - !h.JS_SHA1_NO_COMMON_JS && "object" == typeof module && module.exports, - e = "function" == typeof define && define.amd, - r = "0123456789abcdef".split(""), - o = [-2147483648, 8388608, 32768, 128], - n = [24, 16, 8, 0], - a = ["hex", "array", "digest", "arrayBuffer"], - f = [], - u = function (h) { - return function (s) { - return new t(!0).update(s)[h](); - }; - }, - c = function () { - var h = u("hex"); - s && (h = p(h)), - (h.create = function () { - return new t(); - }), - (h.update = function (t) { - return h.create().update(t); - }); - for (var i = 0; i < a.length; ++i) { - var e = a[i]; - h[e] = u(e); - } - return h; - }, - p = function (t) { - var h = eval("require('crypto')"), - s = eval("require('buffer').Buffer"), - i = function (i) { - if ("string" == typeof i) - return h.createHash("sha1").update(i, "utf8").digest("hex"); - if (i.constructor === ArrayBuffer) i = new Uint8Array(i); - else if (void 0 === i.length) return t(i); - return h.createHash("sha1").update(new s(i)).digest("hex"); - }; - return i; - }; - (t.prototype.update = function (t) { - if (!this.finalized) { - var s = "string" != typeof t; - s && t.constructor === h.ArrayBuffer && (t = new Uint8Array(t)); - for (var i, e, r = 0, o = t.length || 0, a = this.blocks; r < o; ) { - if ( - (this.hashed && - ((this.hashed = !1), - (a[0] = this.block), - (a[16] = - a[1] = - a[2] = - a[3] = - a[4] = - a[5] = - a[6] = - a[7] = - a[8] = - a[9] = - a[10] = - a[11] = - a[12] = - a[13] = - a[14] = - a[15] = - 0)), - s) - ) - for (e = this.start; r < o && e < 64; ++r) - a[e >> 2] |= t[r] << n[3 & e++]; - else - for (e = this.start; r < o && e < 64; ++r) - (i = t.charCodeAt(r)) < 128 - ? (a[e >> 2] |= i << n[3 & e++]) - : i < 2048 - ? ((a[e >> 2] |= (192 | (i >> 6)) << n[3 & e++]), - (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) - : i < 55296 || i >= 57344 - ? ((a[e >> 2] |= (224 | (i >> 12)) << n[3 & e++]), - (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), - (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) - : ((i = - 65536 + (((1023 & i) << 10) | (1023 & t.charCodeAt(++r)))), - (a[e >> 2] |= (240 | (i >> 18)) << n[3 & e++]), - (a[e >> 2] |= (128 | ((i >> 12) & 63)) << n[3 & e++]), - (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), - (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])); - (this.lastByteIndex = e), - (this.bytes += e - this.start), - e >= 64 - ? ((this.block = a[16]), - (this.start = e - 64), - this.hash(), - (this.hashed = !0)) - : (this.start = e); - } - return ( - this.bytes > 4294967295 && - ((this.hBytes += (this.bytes / 4294967296) << 0), - (this.bytes = this.bytes % 4294967296)), - this - ); - } - }), - (t.prototype.finalize = function () { - if (!this.finalized) { - this.finalized = !0; - var t = this.blocks, - h = this.lastByteIndex; - (t[16] = this.block), - (t[h >> 2] |= o[3 & h]), - (this.block = t[16]), - h >= 56 && - (this.hashed || this.hash(), - (t[0] = this.block), - (t[16] = - t[1] = - t[2] = - t[3] = - t[4] = - t[5] = - t[6] = - t[7] = - t[8] = - t[9] = - t[10] = - t[11] = - t[12] = - t[13] = - t[14] = - t[15] = - 0)), - (t[14] = (this.hBytes << 3) | (this.bytes >>> 29)), - (t[15] = this.bytes << 3), - this.hash(); - } - }), - (t.prototype.hash = function () { - var t, - h, - s = this.h0, - i = this.h1, - e = this.h2, - r = this.h3, - o = this.h4, - n = this.blocks; - for (t = 16; t < 80; ++t) - (h = n[t - 3] ^ n[t - 8] ^ n[t - 14] ^ n[t - 16]), - (n[t] = (h << 1) | (h >>> 31)); - for (t = 0; t < 20; t += 5) - (s = - ((h = - ((i = - ((h = - ((e = - ((h = - ((r = - ((h = - ((o = - ((h = (s << 5) | (s >>> 27)) + - ((i & e) | (~i & r)) + - o + - 1518500249 + - n[t]) << - 0) << - 5) | - (o >>> 27)) + - ((s & (i = (i << 30) | (i >>> 2))) | (~s & e)) + - r + - 1518500249 + - n[t + 1]) << - 0) << - 5) | - (r >>> 27)) + - ((o & (s = (s << 30) | (s >>> 2))) | (~o & i)) + - e + - 1518500249 + - n[t + 2]) << - 0) << - 5) | - (e >>> 27)) + - ((r & (o = (o << 30) | (o >>> 2))) | (~r & s)) + - i + - 1518500249 + - n[t + 3]) << - 0) << - 5) | - (i >>> 27)) + - ((e & (r = (r << 30) | (r >>> 2))) | (~e & o)) + - s + - 1518500249 + - n[t + 4]) << - 0), - (e = (e << 30) | (e >>> 2)); - for (; t < 40; t += 5) - (s = - ((h = - ((i = - ((h = - ((e = - ((h = - ((r = - ((h = - ((o = - ((h = (s << 5) | (s >>> 27)) + - (i ^ e ^ r) + - o + - 1859775393 + - n[t]) << - 0) << - 5) | - (o >>> 27)) + - (s ^ (i = (i << 30) | (i >>> 2)) ^ e) + - r + - 1859775393 + - n[t + 1]) << - 0) << - 5) | - (r >>> 27)) + - (o ^ (s = (s << 30) | (s >>> 2)) ^ i) + - e + - 1859775393 + - n[t + 2]) << - 0) << - 5) | - (e >>> 27)) + - (r ^ (o = (o << 30) | (o >>> 2)) ^ s) + - i + - 1859775393 + - n[t + 3]) << - 0) << - 5) | - (i >>> 27)) + - (e ^ (r = (r << 30) | (r >>> 2)) ^ o) + - s + - 1859775393 + - n[t + 4]) << - 0), - (e = (e << 30) | (e >>> 2)); - for (; t < 60; t += 5) - (s = - ((h = - ((i = - ((h = - ((e = - ((h = - ((r = - ((h = - ((o = - ((h = (s << 5) | (s >>> 27)) + - ((i & e) | (i & r) | (e & r)) + - o - - 1894007588 + - n[t]) << - 0) << - 5) | - (o >>> 27)) + - ((s & (i = (i << 30) | (i >>> 2))) | - (s & e) | - (i & e)) + - r - - 1894007588 + - n[t + 1]) << - 0) << - 5) | - (r >>> 27)) + - ((o & (s = (s << 30) | (s >>> 2))) | (o & i) | (s & i)) + - e - - 1894007588 + - n[t + 2]) << - 0) << - 5) | - (e >>> 27)) + - ((r & (o = (o << 30) | (o >>> 2))) | (r & s) | (o & s)) + - i - - 1894007588 + - n[t + 3]) << - 0) << - 5) | - (i >>> 27)) + - ((e & (r = (r << 30) | (r >>> 2))) | (e & o) | (r & o)) + - s - - 1894007588 + - n[t + 4]) << - 0), - (e = (e << 30) | (e >>> 2)); - for (; t < 80; t += 5) - (s = - ((h = - ((i = - ((h = - ((e = - ((h = - ((r = - ((h = - ((o = - ((h = (s << 5) | (s >>> 27)) + - (i ^ e ^ r) + - o - - 899497514 + - n[t]) << - 0) << - 5) | - (o >>> 27)) + - (s ^ (i = (i << 30) | (i >>> 2)) ^ e) + - r - - 899497514 + - n[t + 1]) << - 0) << - 5) | - (r >>> 27)) + - (o ^ (s = (s << 30) | (s >>> 2)) ^ i) + - e - - 899497514 + - n[t + 2]) << - 0) << - 5) | - (e >>> 27)) + - (r ^ (o = (o << 30) | (o >>> 2)) ^ s) + - i - - 899497514 + - n[t + 3]) << - 0) << - 5) | - (i >>> 27)) + - (e ^ (r = (r << 30) | (r >>> 2)) ^ o) + - s - - 899497514 + - n[t + 4]) << - 0), - (e = (e << 30) | (e >>> 2)); - (this.h0 = (this.h0 + s) << 0), - (this.h1 = (this.h1 + i) << 0), - (this.h2 = (this.h2 + e) << 0), - (this.h3 = (this.h3 + r) << 0), - (this.h4 = (this.h4 + o) << 0); - }), - (t.prototype.hex = function () { - this.finalize(); - var t = this.h0, - h = this.h1, - s = this.h2, - i = this.h3, - e = this.h4; - return ( - r[(t >> 28) & 15] + - r[(t >> 24) & 15] + - r[(t >> 20) & 15] + - r[(t >> 16) & 15] + - r[(t >> 12) & 15] + - r[(t >> 8) & 15] + - r[(t >> 4) & 15] + - r[15 & t] + - r[(h >> 28) & 15] + - r[(h >> 24) & 15] + - r[(h >> 20) & 15] + - r[(h >> 16) & 15] + - r[(h >> 12) & 15] + - r[(h >> 8) & 15] + - r[(h >> 4) & 15] + - r[15 & h] + - r[(s >> 28) & 15] + - r[(s >> 24) & 15] + - r[(s >> 20) & 15] + - r[(s >> 16) & 15] + - r[(s >> 12) & 15] + - r[(s >> 8) & 15] + - r[(s >> 4) & 15] + - r[15 & s] + - r[(i >> 28) & 15] + - r[(i >> 24) & 15] + - r[(i >> 20) & 15] + - r[(i >> 16) & 15] + - r[(i >> 12) & 15] + - r[(i >> 8) & 15] + - r[(i >> 4) & 15] + - r[15 & i] + - r[(e >> 28) & 15] + - r[(e >> 24) & 15] + - r[(e >> 20) & 15] + - r[(e >> 16) & 15] + - r[(e >> 12) & 15] + - r[(e >> 8) & 15] + - r[(e >> 4) & 15] + - r[15 & e] - ); - }), - (t.prototype.toString = t.prototype.hex), - (t.prototype.digest = function () { - this.finalize(); - var t = this.h0, - h = this.h1, - s = this.h2, - i = this.h3, - e = this.h4; - return [ - (t >> 24) & 255, - (t >> 16) & 255, - (t >> 8) & 255, - 255 & t, - (h >> 24) & 255, - (h >> 16) & 255, - (h >> 8) & 255, - 255 & h, - (s >> 24) & 255, - (s >> 16) & 255, - (s >> 8) & 255, - 255 & s, - (i >> 24) & 255, - (i >> 16) & 255, - (i >> 8) & 255, - 255 & i, - (e >> 24) & 255, - (e >> 16) & 255, - (e >> 8) & 255, - 255 & e, - ]; - }), - (t.prototype.array = t.prototype.digest), - (t.prototype.arrayBuffer = function () { - this.finalize(); - var t = new ArrayBuffer(20), - h = new DataView(t); - return ( - h.setUint32(0, this.h0), - h.setUint32(4, this.h1), - h.setUint32(8, this.h2), - h.setUint32(12, this.h3), - h.setUint32(16, this.h4), - t - ); - }); - var y = c(); - i - ? (module.exports = y) - : ((h.sha1 = y), - e && - define(function () { - return y; - })); +/* + * [js-sha1]{@link https://github.com/emn178/js-sha1} + * + * @version 0.6.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + */ +!(function () { + "use strict"; + function t(t) { + t + ? ((f[0] = + f[16] = + f[1] = + f[2] = + f[3] = + f[4] = + f[5] = + f[6] = + f[7] = + f[8] = + f[9] = + f[10] = + f[11] = + f[12] = + f[13] = + f[14] = + f[15] = + 0), + (this.blocks = f)) + : (this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), + (this.h0 = 1732584193), + (this.h1 = 4023233417), + (this.h2 = 2562383102), + (this.h3 = 271733878), + (this.h4 = 3285377520), + (this.block = this.start = this.bytes = this.hBytes = 0), + (this.finalized = this.hashed = !1), + (this.first = !0); + } + var h = "object" == typeof window ? window : {}, + s = + !h.JS_SHA1_NO_NODE_JS && + "object" == typeof process && + process.versions && + process.versions.node; + s && (h = global); + var i = + !h.JS_SHA1_NO_COMMON_JS && "object" == typeof module && module.exports, + e = "function" == typeof define && define.amd, + r = "0123456789abcdef".split(""), + o = [-2147483648, 8388608, 32768, 128], + n = [24, 16, 8, 0], + a = ["hex", "array", "digest", "arrayBuffer"], + f = [], + u = function (h) { + return function (s) { + return new t(!0).update(s)[h](); + }; + }, + c = function () { + var h = u("hex"); + s && (h = p(h)), + (h.create = function () { + return new t(); + }), + (h.update = function (t) { + return h.create().update(t); + }); + for (var i = 0; i < a.length; ++i) { + var e = a[i]; + h[e] = u(e); + } + return h; + }, + p = function (t) { + var h = eval("require('crypto')"), + s = eval("require('buffer').Buffer"), + i = function (i) { + if ("string" == typeof i) + return h.createHash("sha1").update(i, "utf8").digest("hex"); + if (i.constructor === ArrayBuffer) i = new Uint8Array(i); + else if (void 0 === i.length) return t(i); + return h.createHash("sha1").update(new s(i)).digest("hex"); + }; + return i; + }; + (t.prototype.update = function (t) { + if (!this.finalized) { + var s = "string" != typeof t; + s && t.constructor === h.ArrayBuffer && (t = new Uint8Array(t)); + for (var i, e, r = 0, o = t.length || 0, a = this.blocks; r < o; ) { + if ( + (this.hashed && + ((this.hashed = !1), + (a[0] = this.block), + (a[16] = + a[1] = + a[2] = + a[3] = + a[4] = + a[5] = + a[6] = + a[7] = + a[8] = + a[9] = + a[10] = + a[11] = + a[12] = + a[13] = + a[14] = + a[15] = + 0)), + s) + ) + for (e = this.start; r < o && e < 64; ++r) + a[e >> 2] |= t[r] << n[3 & e++]; + else + for (e = this.start; r < o && e < 64; ++r) + (i = t.charCodeAt(r)) < 128 + ? (a[e >> 2] |= i << n[3 & e++]) + : i < 2048 + ? ((a[e >> 2] |= (192 | (i >> 6)) << n[3 & e++]), + (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) + : i < 55296 || i >= 57344 + ? ((a[e >> 2] |= (224 | (i >> 12)) << n[3 & e++]), + (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), + (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])) + : ((i = + 65536 + (((1023 & i) << 10) | (1023 & t.charCodeAt(++r)))), + (a[e >> 2] |= (240 | (i >> 18)) << n[3 & e++]), + (a[e >> 2] |= (128 | ((i >> 12) & 63)) << n[3 & e++]), + (a[e >> 2] |= (128 | ((i >> 6) & 63)) << n[3 & e++]), + (a[e >> 2] |= (128 | (63 & i)) << n[3 & e++])); + (this.lastByteIndex = e), + (this.bytes += e - this.start), + e >= 64 + ? ((this.block = a[16]), + (this.start = e - 64), + this.hash(), + (this.hashed = !0)) + : (this.start = e); + } + return ( + this.bytes > 4294967295 && + ((this.hBytes += (this.bytes / 4294967296) << 0), + (this.bytes = this.bytes % 4294967296)), + this + ); + } + }), + (t.prototype.finalize = function () { + if (!this.finalized) { + this.finalized = !0; + var t = this.blocks, + h = this.lastByteIndex; + (t[16] = this.block), + (t[h >> 2] |= o[3 & h]), + (this.block = t[16]), + h >= 56 && + (this.hashed || this.hash(), + (t[0] = this.block), + (t[16] = + t[1] = + t[2] = + t[3] = + t[4] = + t[5] = + t[6] = + t[7] = + t[8] = + t[9] = + t[10] = + t[11] = + t[12] = + t[13] = + t[14] = + t[15] = + 0)), + (t[14] = (this.hBytes << 3) | (this.bytes >>> 29)), + (t[15] = this.bytes << 3), + this.hash(); + } + }), + (t.prototype.hash = function () { + var t, + h, + s = this.h0, + i = this.h1, + e = this.h2, + r = this.h3, + o = this.h4, + n = this.blocks; + for (t = 16; t < 80; ++t) + (h = n[t - 3] ^ n[t - 8] ^ n[t - 14] ^ n[t - 16]), + (n[t] = (h << 1) | (h >>> 31)); + for (t = 0; t < 20; t += 5) + (s = + ((h = + ((i = + ((h = + ((e = + ((h = + ((r = + ((h = + ((o = + ((h = (s << 5) | (s >>> 27)) + + ((i & e) | (~i & r)) + + o + + 1518500249 + + n[t]) << + 0) << + 5) | + (o >>> 27)) + + ((s & (i = (i << 30) | (i >>> 2))) | (~s & e)) + + r + + 1518500249 + + n[t + 1]) << + 0) << + 5) | + (r >>> 27)) + + ((o & (s = (s << 30) | (s >>> 2))) | (~o & i)) + + e + + 1518500249 + + n[t + 2]) << + 0) << + 5) | + (e >>> 27)) + + ((r & (o = (o << 30) | (o >>> 2))) | (~r & s)) + + i + + 1518500249 + + n[t + 3]) << + 0) << + 5) | + (i >>> 27)) + + ((e & (r = (r << 30) | (r >>> 2))) | (~e & o)) + + s + + 1518500249 + + n[t + 4]) << + 0), + (e = (e << 30) | (e >>> 2)); + for (; t < 40; t += 5) + (s = + ((h = + ((i = + ((h = + ((e = + ((h = + ((r = + ((h = + ((o = + ((h = (s << 5) | (s >>> 27)) + + (i ^ e ^ r) + + o + + 1859775393 + + n[t]) << + 0) << + 5) | + (o >>> 27)) + + (s ^ (i = (i << 30) | (i >>> 2)) ^ e) + + r + + 1859775393 + + n[t + 1]) << + 0) << + 5) | + (r >>> 27)) + + (o ^ (s = (s << 30) | (s >>> 2)) ^ i) + + e + + 1859775393 + + n[t + 2]) << + 0) << + 5) | + (e >>> 27)) + + (r ^ (o = (o << 30) | (o >>> 2)) ^ s) + + i + + 1859775393 + + n[t + 3]) << + 0) << + 5) | + (i >>> 27)) + + (e ^ (r = (r << 30) | (r >>> 2)) ^ o) + + s + + 1859775393 + + n[t + 4]) << + 0), + (e = (e << 30) | (e >>> 2)); + for (; t < 60; t += 5) + (s = + ((h = + ((i = + ((h = + ((e = + ((h = + ((r = + ((h = + ((o = + ((h = (s << 5) | (s >>> 27)) + + ((i & e) | (i & r) | (e & r)) + + o - + 1894007588 + + n[t]) << + 0) << + 5) | + (o >>> 27)) + + ((s & (i = (i << 30) | (i >>> 2))) | + (s & e) | + (i & e)) + + r - + 1894007588 + + n[t + 1]) << + 0) << + 5) | + (r >>> 27)) + + ((o & (s = (s << 30) | (s >>> 2))) | (o & i) | (s & i)) + + e - + 1894007588 + + n[t + 2]) << + 0) << + 5) | + (e >>> 27)) + + ((r & (o = (o << 30) | (o >>> 2))) | (r & s) | (o & s)) + + i - + 1894007588 + + n[t + 3]) << + 0) << + 5) | + (i >>> 27)) + + ((e & (r = (r << 30) | (r >>> 2))) | (e & o) | (r & o)) + + s - + 1894007588 + + n[t + 4]) << + 0), + (e = (e << 30) | (e >>> 2)); + for (; t < 80; t += 5) + (s = + ((h = + ((i = + ((h = + ((e = + ((h = + ((r = + ((h = + ((o = + ((h = (s << 5) | (s >>> 27)) + + (i ^ e ^ r) + + o - + 899497514 + + n[t]) << + 0) << + 5) | + (o >>> 27)) + + (s ^ (i = (i << 30) | (i >>> 2)) ^ e) + + r - + 899497514 + + n[t + 1]) << + 0) << + 5) | + (r >>> 27)) + + (o ^ (s = (s << 30) | (s >>> 2)) ^ i) + + e - + 899497514 + + n[t + 2]) << + 0) << + 5) | + (e >>> 27)) + + (r ^ (o = (o << 30) | (o >>> 2)) ^ s) + + i - + 899497514 + + n[t + 3]) << + 0) << + 5) | + (i >>> 27)) + + (e ^ (r = (r << 30) | (r >>> 2)) ^ o) + + s - + 899497514 + + n[t + 4]) << + 0), + (e = (e << 30) | (e >>> 2)); + (this.h0 = (this.h0 + s) << 0), + (this.h1 = (this.h1 + i) << 0), + (this.h2 = (this.h2 + e) << 0), + (this.h3 = (this.h3 + r) << 0), + (this.h4 = (this.h4 + o) << 0); + }), + (t.prototype.hex = function () { + this.finalize(); + var t = this.h0, + h = this.h1, + s = this.h2, + i = this.h3, + e = this.h4; + return ( + r[(t >> 28) & 15] + + r[(t >> 24) & 15] + + r[(t >> 20) & 15] + + r[(t >> 16) & 15] + + r[(t >> 12) & 15] + + r[(t >> 8) & 15] + + r[(t >> 4) & 15] + + r[15 & t] + + r[(h >> 28) & 15] + + r[(h >> 24) & 15] + + r[(h >> 20) & 15] + + r[(h >> 16) & 15] + + r[(h >> 12) & 15] + + r[(h >> 8) & 15] + + r[(h >> 4) & 15] + + r[15 & h] + + r[(s >> 28) & 15] + + r[(s >> 24) & 15] + + r[(s >> 20) & 15] + + r[(s >> 16) & 15] + + r[(s >> 12) & 15] + + r[(s >> 8) & 15] + + r[(s >> 4) & 15] + + r[15 & s] + + r[(i >> 28) & 15] + + r[(i >> 24) & 15] + + r[(i >> 20) & 15] + + r[(i >> 16) & 15] + + r[(i >> 12) & 15] + + r[(i >> 8) & 15] + + r[(i >> 4) & 15] + + r[15 & i] + + r[(e >> 28) & 15] + + r[(e >> 24) & 15] + + r[(e >> 20) & 15] + + r[(e >> 16) & 15] + + r[(e >> 12) & 15] + + r[(e >> 8) & 15] + + r[(e >> 4) & 15] + + r[15 & e] + ); + }), + (t.prototype.toString = t.prototype.hex), + (t.prototype.digest = function () { + this.finalize(); + var t = this.h0, + h = this.h1, + s = this.h2, + i = this.h3, + e = this.h4; + return [ + (t >> 24) & 255, + (t >> 16) & 255, + (t >> 8) & 255, + 255 & t, + (h >> 24) & 255, + (h >> 16) & 255, + (h >> 8) & 255, + 255 & h, + (s >> 24) & 255, + (s >> 16) & 255, + (s >> 8) & 255, + 255 & s, + (i >> 24) & 255, + (i >> 16) & 255, + (i >> 8) & 255, + 255 & i, + (e >> 24) & 255, + (e >> 16) & 255, + (e >> 8) & 255, + 255 & e, + ]; + }), + (t.prototype.array = t.prototype.digest), + (t.prototype.arrayBuffer = function () { + this.finalize(); + var t = new ArrayBuffer(20), + h = new DataView(t); + return ( + h.setUint32(0, this.h0), + h.setUint32(4, this.h1), + h.setUint32(8, this.h2), + h.setUint32(12, this.h3), + h.setUint32(16, this.h4), + t + ); + }); + var y = c(); + i + ? (module.exports = y) + : ((h.sha1 = y), + e && + define(function () { + return y; + })); })(); \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 07c8f0d..0c70f2c 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,32 +1,32 @@ - - - - - - - - - FullGreaM - - - - -
-

Включите поддержку JavaScript!

-

В противном случае, компоненты сайте не смогут быть загружены

-
- - - - - - - + + + + + + + + + FullGreaM + + + + +
+

Включите поддержку JavaScript!

+

В противном случае, компоненты сайте не смогут быть загружены

+
+ + + + + + + \ No newline at end of file diff --git a/blog/posts.json b/blog/posts.json index 72e218b..2ceed8c 100644 --- a/blog/posts.json +++ b/blog/posts.json @@ -1,52 +1,69 @@ -{ - "categories" : [ - { - "tag" : "news", - "name" : "Новости" - }, - { - "tag" : "updates", - "name" : "Обновления" - }, - { - "tag" : "personal", - "name" : "Личное" - } - ], - "posts" : [ - { - "title" : "Открыт блог", - "date" : 1697329458, - "data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\nUPD: Категории я добавлю позже.", - "categories" : ["news", "updates"], - "attachments" : { - "images" : [ - "/assets/posts/15102023.png" - ], - "files" : [], - "video" : [], - "youtube" : [], - "audio" : [], - "voice" : [] - }, - "forward" : null - }, - { - "title" : "Купил себе SD-Карты", - "date" : 1697385474, - "data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.", - "categories" : ["personal"], - "attachments" : { - "images" : [ - "/assets/posts/IMG_20231015_185244_587.jpg" - ], - "files" : [], - "video" : [], - "youtube" : [], - "audio" : [], - "voice" : [] - }, - "forward" : null - } - ] -} \ No newline at end of file +{ + "categories" : [ + { + "tag" : "news", + "name" : "Новости" + }, + { + "tag" : "updates", + "name" : "Обновления" + }, + { + "tag" : "personal", + "name" : "Личное" + } + ], + "posts" : [ + { + "title" : "Открыт блог", + "date" : 1697329458, + "data" : "Сегодня я запустил блог на сайте и это первый пост в нём.\n...В блоге будут публиковаться новости, анонсы, а также, мои личные мысли. Впрочем, если вам интересно что-то одно или, наоборот, не интересно иное, то я добавил поддержку \"категорий\", которые вы можете включать и отключать.\n\nUPD: Категории я добавлю позже.", + "categories" : ["news", "updates"], + "attachments" : { + "images" : [ + "/assets/posts/15102023.png" + ], + "files" : [], + "video" : [], + "youtube" : [], + "audio" : [], + "voice" : [] + }, + "forward" : null + }, + { + "title" : "Купил себе SD-Карты", + "date" : 1697385474, + "data" : "Купил себе карты памяти в DNS, ща буду гонять, смотреть как работают.\n\nВообще, мне нехватало места на телефоне и посему решил докупить себе одну на 128 и одну на 64 гига.", + "categories" : ["personal"], + "attachments" : { + "images" : [ + "/assets/posts/IMG_20231015_185244_587.jpg" + ], + "files" : [], + "video" : [], + "youtube" : [], + "audio" : [], + "voice" : [] + }, + "forward" : null + }, + { + "title" : "Привод Arcturus", + "date" : 1718360744, + "data" : "Купил себе привод от Arcturus. Потестил - норм, буду гонять с ним дальше", + "categories" : ["personal"], + "attachments" : { + "images" : [ + "/assets/posts/photo_2024-05-28_21-15-13.jpg" + ], + "files" : [], + "video" : [], + "youtube" : [], + "audio" : [], + "voice" : [] + }, + "forward" : null + } + ] +} diff --git a/contacts/index.html b/contacts/index.html index 07c8f0d..0c70f2c 100644 --- a/contacts/index.html +++ b/contacts/index.html @@ -1,32 +1,32 @@ - - - - - - - - - FullGreaM - - - - -
-

Включите поддержку JavaScript!

-

В противном случае, компоненты сайте не смогут быть загружены

-
- - - - - - - + + + + + + + + + FullGreaM + + + + +
+

Включите поддержку JavaScript!

+

В противном случае, компоненты сайте не смогут быть загружены

+
+ + + + + + + \ No newline at end of file diff --git a/files/fix-mods.csv b/files/fix-mods.csv index fd2443b..899c973 100644 --- a/files/fix-mods.csv +++ b/files/fix-mods.csv @@ -1,233 +1,233 @@ -#Mod_Priority,#Mod_Name,#Mod_Nexus_URL -"0000","Unmanaged: FNIS","" -"0002","DLC: HearthFires","" -"0003","DLC: Dragonborn","" -"0004","DLC: Dawnguard","" -"0006","Address Library for SKSE Plugins","https://www.nexusmods.com/skyrimspecialedition/mods/32444" -"0007","Unofficial Skyrim Special Edition Patch-RUS-RUS","https://www.nexusmods.com/skyrimspecialedition/mods/266" -"0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073" -"0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495" -"0010","ConsoleUtilSSE","https://www.nexusmods.com/skyrimspecialedition/mods/24858" -"0011","ENB Helper SE 1.5 for SSE 1.5.97","https://www.nexusmods.com/skyrimspecialedition/mods/23174" -"0012","Weapons Armor Clothing and Clutter Fixes","https://www.nexusmods.com/skyrimspecialedition/mods/18994" -"0013","Weapons Armor Clothing and Clutter Fixes 2.9 RUS","https://www.nexusmods.com/skyrimspecialedition/mods/19284" -"0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604" -"0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561" -"0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382" -"0018","RaceCompatibility with fixes for SSE","https://www.nexusmods.com/skyrimspecialedition/mods/2853" -"0019","more HUD SE Light Master- Pre AE","https://www.nexusmods.com/skyrimspecialedition/mods/12688" -"0020","MCM Helper SE","https://www.nexusmods.com/skyrimspecialedition/mods/53000" -"0021","FileAccess Interface for Skyrim SE Scripts - FISSES (FISS)","https://www.nexusmods.com/skyrimspecialedition/mods/13956" -"0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858" -"0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401" -"0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944" -"0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634" -"0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705" -"0028","CrashLogger","https://www.nexusmods.com/skyrimspecialedition/mods/59818" -"0029","CrashLoggerSE","https://www.nexusmods.com/skyrimspecialedition/mods/59818" -"0035","BodySlide and Outfit Studio","https://www.nexusmods.com/skyrimspecialedition/mods/201" -"0036","Перевод BodySlide and Outfit Studio","" -"0038","Caliente's Beautiful Bodies Enhancer -CBBE-","https://www.nexusmods.com/skyrimspecialedition/mods/198" -"0039","CBPC - Physics with Collisions","https://www.nexusmods.com/skyrimspecialedition/mods/21224" -"0041","HDT-SMP for SSE 1.5.97 (avx on)","https://www.nexusmods.com/skyrimspecialedition/mods/30872" -"0045","CBBE 3BA","https://www.nexusmods.com/skyrimspecialedition/mods/30174" -"0046","XP32 Maximum Skeleton Special Extended","https://www.nexusmods.com/skyrimspecialedition/mods/1988" -"0047","XP32 Maximum Skeleton Special Extended - Fixed Scripts","https://www.nexusmods.com/skyrimspecialedition/mods/44252" -"0049","AddItemMenu - NG","https://www.nexusmods.com/skyrimspecialedition/mods/71409" -"0054","NAT Stand Alone - 0.4.2 c","https://www.nexusmods.com/skyrimspecialedition/mods/12842" -"0055","Enhanced Lights and FX","https://www.nexusmods.com/skyrimspecialedition/mods/2424" -"0056","Cathedral - 3D Pine Grass - Full 3D Coverage","https://www.nexusmods.com/skyrimspecialedition/mods/42032" -"0057","Nature of the Wild Lands - Landscape textures","https://www.nexusmods.com/skyrimspecialedition/mods/63604" -"0058","Nature of the Wild Lands 2.0","https://www.nexusmods.com/skyrimspecialedition/mods/63604" -"0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530" -"0060","Northern Roads (SE-AE) - RU","https://www.nexusmods.com/skyrimspecialedition/mods/77652" -"0061","Nature of the Wild Lands - Grass","https://www.nexusmods.com/skyrimspecialedition/mods/63604" -"0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162" -"0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725" -"0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436" -"0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061" -"0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765" -"0067","Picta Series - Improved Sky Meshes","https://www.nexusmods.com/skyrimspecialedition/mods/58263" -"0068","Storm Lightning for SSE and VR (Minty Lightning 2019)","https://www.nexusmods.com/skyrimspecialedition/mods/29243" -"0070","Serious HD sse 1.2","https://www.nexusmods.com/skyrimspecialedition/mods/7435" -"0071","HD Lods Textures SE 1K","https://www.nexusmods.com/skyrimspecialedition/mods/3333" -"0072","B. Noble Skyrim - FULL PACK_Performance Edition","https://www.nexusmods.com/skyrimspecialedition/mods/21423" -"0073","Static Mesh Improvement Mod (SMIM)","https://www.nexusmods.com/skyrimspecialedition/mods/659" -"0074","Bellyaches Animal and Creature Pack","" -"0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052" -"0077","Schlongs of Skyrim SE","" -"0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078" -"0080","Fair Skin Complexion for CBBE","" -"0082","Tempered Skins for Males - SOS Full Version","https://www.nexusmods.com/skyrimspecialedition/mods/7902" -"0085","Kalilies Brows - High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/57115" -"0086","High Poly Head SE","" -"0087","Expressive Facegen Morphs SE","https://www.nexusmods.com/skyrimspecialedition/mods/35785" -"0088","Expressive Facial Animation - Female Edition","https://www.nexusmods.com/skyrimspecialedition/mods/19181" -"0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595" -"0091","ApachiiSkyHair_v_1_6_Full_optimized","https://www.nexusmods.com/skyrimspecialedition/mods/2014" -"0092","ApachiiSkyHairMale_v_1_3","https://www.nexusmods.com/skyrimspecialedition/mods/2014" -"0093","ApachiiSkyHairFemale_v_1_5_1","https://www.nexusmods.com/skyrimspecialedition/mods/2014" -"0094","The Witcher 3 Eyes","https://www.nexusmods.com/skyrimspecialedition/mods/2921" -"0095","HDT-SMP Racemenu Hairs and Wigs","" -"0096","Female Makeup Suite - Face - 2K","https://www.nexusmods.com/skyrimspecialedition/mods/24495" -"0097","The Eyes of Beauty SSE","https://www.nexusmods.com/skyrimspecialedition/mods/16185" -"0098","KS Hairdos - HDT SMP (Physics)","https://www.nexusmods.com/skyrimspecialedition/mods/31300" -"0099","Freckle Mania High Quality","https://www.nexusmods.com/skyrimspecialedition/mods/52841" -"0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890" -"0101","Hvergelmir's Aesthetics - Brows","https://www.nexusmods.com/skyrimspecialedition/mods/1062" -"0102","Hvergelmir Brows - For High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/38493" -"0103","Womens_Eyebrows","" -"0104","Female Basic Makeup STANDALONE","https://www.nexusmods.com/skyrimspecialedition/mods/44716" -"0105","Empyrean CS SSE 2.1","https://www.nexusmods.com/skyrimspecialedition/mods/38965" -"0106","Great modders' SMP Hair pack and Xing","https://www.nexusmods.com/skyrimspecialedition/mods/31405" -"0107","llygaid Eye - Unreal 1K","https://www.nexusmods.com/skyrimspecialedition/mods/91422" -"0109","Dynamic Animation Replacer (DAR) v1.0.0 for SkyrimSE","https://www.nexusmods.com/skyrimspecialedition/mods/33746" -"0110","Animation Motion Revolution","https://www.nexusmods.com/skyrimspecialedition/mods/50258" -"0111","Nemesis Unlimited Behavior Engine","https://www.nexusmods.com/skyrimspecialedition/mods/60033" -"0112","Gesture Animation Remix (DAR) - main archive","https://www.nexusmods.com/skyrimspecialedition/mods/64420" -"0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446" -"0116","Audio Overhaul for Skyrim 2","https://www.nexusmods.com/skyrimspecialedition/mods/12466" -"0117","MLVUCSSE - English Original Voices","https://www.nexusmods.com/skyrimspecialedition/mods/91265" -"0119","Holds SSE Complete - 0.0.9","https://www.nexusmods.com/skyrimspecialedition/mods/10609" -"0120","Guards Armor Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/22671" -"0121","Guards Armor Replacer [RUS]","" -"0122","NordWarUA's Vanilla Armor Replacers SSE","https://www.nexusmods.com/skyrimspecialedition/mods/31679" -"0123","NordWarUA's Vanilla Armor Replacers SSE -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/39681" -"0124","Lanterns Of Skyrim II","" -"0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817" -"0128","HD HAIR(SE)","" -"0129","NecDaz Feet v","" -"0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522" -"0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012" -"0132","PAN_AIO","" -"0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600" -"0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478" -"0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877" -"0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531" -"0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931" -"0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399" -"0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799" -"0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273" -"0141","PAN_Nevri","https://www.nexusmods.com/skyrimspecialedition/mods/45128" -"0142","PAN_Brelyna","https://www.nexusmods.com/skyrimspecialedition/mods/45128" -"0143","Pandorable's Black-Briar Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/33731" -"0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464" -"0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827" -"0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480" -"0147","Pandorable's NPCs - Males","https://www.nexusmods.com/skyrimspecialedition/mods/42043" -"0148","Pandorable's NPCs - Males 2","https://www.nexusmods.com/skyrimspecialedition/mods/50617" -"0149","Bijin Warmaidens SE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" -"0150","Bijin Warmaidens SE - High-res skin textures for CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" -"0151","Bijin Wives SE 1.1.2","https://www.nexusmods.com/skyrimspecialedition/mods/11247" -"0152","Bijin NPCs SE 1.2.1","https://www.nexusmods.com/skyrimspecialedition/mods/11287" -"0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287" -"0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329" -"0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" -"0163","Bella Voice Fix","" -"0164","voicebella maingame and dlc","https://www.nexusmods.com/skyrimspecialedition/mods/89810" -"0165","Name heroine DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" -"0169","IFPV","https://www.nexusmods.com/skyrimspecialedition/mods/22306" -"0170","RaceMenu Special Edition","" -"0171","RaceMenu Special Edition RUS","" -"0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272" -"0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220" -"0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463" -"0176","Spell Perk Item Distributor (SPID)","https://www.nexusmods.com/skyrimspecialedition/mods/36869" -"0177","Vokrii 3.8.2","https://www.nexusmods.com/skyrimspecialedition/mods/26176" -"0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091" -"0179","NORDIC UI - Interface Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/49881" -"0180","iNeed - Food, Water and Sleep - Continued","https://www.nexusmods.com/skyrimspecialedition/mods/19390" -"0181","Frostfall 3.4.1 SE Release","https://www.nexusmods.com/skyrimspecialedition/mods/671" -"0182","Campfire 1.12.1SEVR Release","https://www.nexusmods.com/skyrimspecialedition/mods/667" -"0183","SkyrimForBattleV","" -"0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993" -"0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177" -"0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668" -"0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614" -"0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188" -"0191","SkySA","" -"0192","Grip Switch SkySA 1.2.1","https://www.nexusmods.com/skyrim/mods/54056" -"0194","TK Dodge SE","https://www.nexusmods.com/skyrimspecialedition/mods/15309" -"0195","JH Combat Animation Pack","https://www.nexusmods.com/skyrimspecialedition/mods/48500" -"0197","Elder Souls - Sword 2.0 SE","https://www.nexusmods.com/skyrimspecialedition/mods/47191" -"0198","Part 1) SEKIRO HUD by Inpa Skyrim","https://www.nexusmods.com/skyrimspecialedition/mods/41428" -"0199","Part 2) SEKIRO COMBAT","https://www.nexusmods.com/skyrimspecialedition/mods/41428" -"0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251" -"0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484" -"0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674" -"0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063" -"0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347" -"0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362" -"0206","Elden Power Attack","https://www.nexusmods.com/skyrimspecialedition/mods/66711" -"0207","Dark Souls Movement And Stamina Regen","https://www.nexusmods.com/skyrimspecialedition/mods/33135" -"0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819" -"0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516" -"0210","Nock to Tip","" -"0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917" -"0213","Heroes Of Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/3053" -"0214","Populated Dungeons Caves Ruins Legendary Edition","https://www.nexusmods.com/skyrimspecialedition/mods/2820" -"0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE","" -"0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617" -"0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141" -"0222","Acalypha - Fully Voiced Follower","" -"0223","INIGO_V2.4C SE","https://www.nexusmods.com/skyrimspecialedition/mods/1461" -"0224","Song Of The Green 1.4","https://www.nexusmods.com/skyrimspecialedition/mods/11278" -"0225","Refined Auri SSE","https://www.nexusmods.com/skyrimspecialedition/mods/36444" -"0226","SkyMirai Standalone Follower 2_11 SSE","https://www.nexusmods.com/skyrimspecialedition/mods/10908" -"0227","Nicola Avenicci SE 0.3","https://www.nexusmods.com/skyrimspecialedition/mods/6862" -"0229","WIC (Whinter is Coming) Cloaks SSE 2_4","https://www.nexusmods.com/skyrimspecialedition/mods/4933" -"0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756" -"0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596" -"0232","Eclipse_Mage_Outfit_HDT","" -"0233","[SE] BDOR Navillera","" -"0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448" -"0236","Irena High Poly Head preset by ElleShet SE","" -"0237","Nirani Indoril Body preset SE by ElleShet","" -"0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574" -"0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993" -"0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810" -"0242","Simple Load Screens","https://www.nexusmods.com/skyrimspecialedition/mods/49529" -"0243","NORDIC UI - Alternate loading screen and start menu","https://www.nexusmods.com/skyrimspecialedition/mods/54153" -"0245","Fantasy Soundtrack Project SE","https://www.nexusmods.com/skyrimspecialedition/mods/5268" -"0246","Dreyma Mod [new Music of Skyrim]","https://www.nexusmods.com/skyrimspecialedition/mods/23386" -"0248","NAT.ENB - ESP WEATHER PLUGIN","https://www.nexusmods.com/skyrimspecialedition/mods/27141" -"0250","NordWarUA's Vanilla Armor Replacers SSE -Patches-","https://www.nexusmods.com/skyrimspecialedition/mods/31679" -"0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893" -"0252","Holds The City Overhaul -RUS-","" -"0253","Majestic Mountains [RUS]","" -"0254","Face Discoloration Fix SE","https://www.nexusmods.com/skyrimspecialedition/mods/42441" -"0255","Simple Load Screens - Russian translation","https://www.nexusmods.com/skyrimspecialedition/mods/50912" -"0256","Precision - Accurate Melee Collisions - RU","https://www.nexusmods.com/skyrimspecialedition/mods/72584" -"0257","Pandorable's NPCs_SSE_v1.4_RU","https://www.nexusmods.com/skyrimspecialedition/mods/27582" -"0258","Pandorables NPCs Males [RUS]","" -"0259","Pandorables NPCs - Males 2 [RUS]","" -"0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus","" -"0261","Irena High Poly Head preset by ElleShet SE 3BBB Body","" -"0262","Nirani Indoril High Poly Head preset SE by ElleShet","" -"0263","Deadly Mutilation V1_3_3 CBBE meshes Pack","https://www.nexusmods.com/skyrimspecialedition/mods/34917" -"0264","Bijin skin compability patch Alternative normal map","https://www.nexusmods.com/skyrimspecialedition/mods/27405" -"0265","SEKIRO COMBAT SE - RU","https://www.nexusmods.com/skyrimspecialedition/mods/57678" -"0266","Nordic UI -RUS-","" -"0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925" -"0268","SkyrimForBattleV-Patch","" -"0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306" -"0270","Jaxonz MCM Kicker SE_rus_","" -"0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088" -"0272","INIGO -RUS-","" -"0273","Song of the Green _RUS_","" -"0274","Inigo Banter patch","" -"0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444" -"0276","Refined Auri SSE -RUS-","" -"0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035" -"0278","Саурон","" -"0279","Sweety Preset","" -"0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792" -"0281","BodySlide output","" -"0282","DBVO NordicUI Patch","https://www.nexusmods.com/skyrimspecialedition/mods/84329" -"0284","Dragonborn Voice Over - Stereo Plugin Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/90417" -"0285","FNIS Overwrite","" -"0286","Nemesis overwrite","" -"0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061" -"0289","Pipe Smoking SE RUS","" -"0291","PapyrusUtil SE - Scripting Utility Functions","https://www.nexusmods.com/skyrimspecialedition/mods/13048" -"0292","powerofthree's Papyrus Extender","https://www.nexusmods.com/skyrimspecialedition/mods/22854" +#Mod_Priority,#Mod_Name,#Mod_Nexus_URL +"0000","Unmanaged: FNIS","" +"0002","DLC: HearthFires","" +"0003","DLC: Dragonborn","" +"0004","DLC: Dawnguard","" +"0006","Address Library for SKSE Plugins","https://www.nexusmods.com/skyrimspecialedition/mods/32444" +"0007","Unofficial Skyrim Special Edition Patch-RUS-RUS","https://www.nexusmods.com/skyrimspecialedition/mods/266" +"0008","powerofthree's Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/51073" +"0009","JContainers SE","https://www.nexusmods.com/skyrimspecialedition/mods/16495" +"0010","ConsoleUtilSSE","https://www.nexusmods.com/skyrimspecialedition/mods/24858" +"0011","ENB Helper SE 1.5 for SSE 1.5.97","https://www.nexusmods.com/skyrimspecialedition/mods/23174" +"0012","Weapons Armor Clothing and Clutter Fixes","https://www.nexusmods.com/skyrimspecialedition/mods/18994" +"0013","Weapons Armor Clothing and Clutter Fixes 2.9 RUS","https://www.nexusmods.com/skyrimspecialedition/mods/19284" +"0014","SkyUI_5_2_SE","https://www.nexusmods.com/skyrimspecialedition/mods/12604" +"0015","UIExtensions","https://www.nexusmods.com/skyrimspecialedition/mods/17561" +"0016","DynDOLOD Resources SE","https://www.nexusmods.com/skyrimspecialedition/mods/32382" +"0018","RaceCompatibility with fixes for SSE","https://www.nexusmods.com/skyrimspecialedition/mods/2853" +"0019","more HUD SE Light Master- Pre AE","https://www.nexusmods.com/skyrimspecialedition/mods/12688" +"0020","MCM Helper SE","https://www.nexusmods.com/skyrimspecialedition/mods/53000" +"0021","FileAccess Interface for Skyrim SE Scripts - FISSES (FISS)","https://www.nexusmods.com/skyrimspecialedition/mods/13956" +"0022","Papyrus API","https://www.nexusmods.com/skyrimspecialedition/mods/24858" +"0023","IFrame Generator RE","https://www.nexusmods.com/skyrimspecialedition/mods/74401" +"0024","dTry's Key Utils SE","https://www.nexusmods.com/skyrimspecialedition/mods/69944" +"0025","Papyrus Ini Manipulator","https://www.nexusmods.com/skyrimspecialedition/mods/65634" +"0027","SSE Display Tweaks","https://www.nexusmods.com/skyrimspecialedition/mods/34705" +"0028","CrashLogger","https://www.nexusmods.com/skyrimspecialedition/mods/59818" +"0029","CrashLoggerSE","https://www.nexusmods.com/skyrimspecialedition/mods/59818" +"0035","BodySlide and Outfit Studio","https://www.nexusmods.com/skyrimspecialedition/mods/201" +"0036","Перевод BodySlide and Outfit Studio","" +"0038","Caliente's Beautiful Bodies Enhancer -CBBE-","https://www.nexusmods.com/skyrimspecialedition/mods/198" +"0039","CBPC - Physics with Collisions","https://www.nexusmods.com/skyrimspecialedition/mods/21224" +"0041","HDT-SMP for SSE 1.5.97 (avx on)","https://www.nexusmods.com/skyrimspecialedition/mods/30872" +"0045","CBBE 3BA","https://www.nexusmods.com/skyrimspecialedition/mods/30174" +"0046","XP32 Maximum Skeleton Special Extended","https://www.nexusmods.com/skyrimspecialedition/mods/1988" +"0047","XP32 Maximum Skeleton Special Extended - Fixed Scripts","https://www.nexusmods.com/skyrimspecialedition/mods/44252" +"0049","AddItemMenu - NG","https://www.nexusmods.com/skyrimspecialedition/mods/71409" +"0054","NAT Stand Alone - 0.4.2 c","https://www.nexusmods.com/skyrimspecialedition/mods/12842" +"0055","Enhanced Lights and FX","https://www.nexusmods.com/skyrimspecialedition/mods/2424" +"0056","Cathedral - 3D Pine Grass - Full 3D Coverage","https://www.nexusmods.com/skyrimspecialedition/mods/42032" +"0057","Nature of the Wild Lands - Landscape textures","https://www.nexusmods.com/skyrimspecialedition/mods/63604" +"0058","Nature of the Wild Lands 2.0","https://www.nexusmods.com/skyrimspecialedition/mods/63604" +"0059","Northern Roads","https://www.nexusmods.com/skyrimspecialedition/mods/77530" +"0060","Northern Roads (SE-AE) - RU","https://www.nexusmods.com/skyrimspecialedition/mods/77652" +"0061","Nature of the Wild Lands - Grass","https://www.nexusmods.com/skyrimspecialedition/mods/63604" +"0062","Enhanced Landscapes","https://www.nexusmods.com/skyrimspecialedition/mods/18162" +"0063","EVLaS","https://www.nexusmods.com/skyrimspecialedition/mods/63725" +"0064","Morning Fogs SSE - Thin Fog","https://www.nexusmods.com/skyrimspecialedition/mods/21436" +"0065","Water for ENB","https://www.nexusmods.com/skyrimspecialedition/mods/37061" +"0066","ELFX Fixes (RUS)","https://www.nexusmods.com/skyrimspecialedition/mods/39765" +"0067","Picta Series - Improved Sky Meshes","https://www.nexusmods.com/skyrimspecialedition/mods/58263" +"0068","Storm Lightning for SSE and VR (Minty Lightning 2019)","https://www.nexusmods.com/skyrimspecialedition/mods/29243" +"0070","Serious HD sse 1.2","https://www.nexusmods.com/skyrimspecialedition/mods/7435" +"0071","HD Lods Textures SE 1K","https://www.nexusmods.com/skyrimspecialedition/mods/3333" +"0072","B. Noble Skyrim - FULL PACK_Performance Edition","https://www.nexusmods.com/skyrimspecialedition/mods/21423" +"0073","Static Mesh Improvement Mod (SMIM)","https://www.nexusmods.com/skyrimspecialedition/mods/659" +"0074","Bellyaches Animal and Creature Pack","" +"0075","Majestic Mountains Main","https://www.nexusmods.com/skyrimspecialedition/mods/11052" +"0077","Schlongs of Skyrim SE","" +"0079","Bijin Skin - CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/20078" +"0080","Fair Skin Complexion for CBBE","" +"0082","Tempered Skins for Males - SOS Full Version","https://www.nexusmods.com/skyrimspecialedition/mods/7902" +"0085","Kalilies Brows - High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/57115" +"0086","High Poly Head SE","" +"0087","Expressive Facegen Morphs SE","https://www.nexusmods.com/skyrimspecialedition/mods/35785" +"0088","Expressive Facial Animation - Female Edition","https://www.nexusmods.com/skyrimspecialedition/mods/19181" +"0089","Kalilies Brows","https://www.nexusmods.com/skyrimspecialedition/mods/40595" +"0091","ApachiiSkyHair_v_1_6_Full_optimized","https://www.nexusmods.com/skyrimspecialedition/mods/2014" +"0092","ApachiiSkyHairMale_v_1_3","https://www.nexusmods.com/skyrimspecialedition/mods/2014" +"0093","ApachiiSkyHairFemale_v_1_5_1","https://www.nexusmods.com/skyrimspecialedition/mods/2014" +"0094","The Witcher 3 Eyes","https://www.nexusmods.com/skyrimspecialedition/mods/2921" +"0095","HDT-SMP Racemenu Hairs and Wigs","" +"0096","Female Makeup Suite - Face - 2K","https://www.nexusmods.com/skyrimspecialedition/mods/24495" +"0097","The Eyes of Beauty SSE","https://www.nexusmods.com/skyrimspecialedition/mods/16185" +"0098","KS Hairdos - HDT SMP (Physics)","https://www.nexusmods.com/skyrimspecialedition/mods/31300" +"0099","Freckle Mania High Quality","https://www.nexusmods.com/skyrimspecialedition/mods/52841" +"0100","SE SG Brows","https://www.nexusmods.com/skyrimspecialedition/mods/25890" +"0101","Hvergelmir's Aesthetics - Brows","https://www.nexusmods.com/skyrimspecialedition/mods/1062" +"0102","Hvergelmir Brows - For High Poly Head","https://www.nexusmods.com/skyrimspecialedition/mods/38493" +"0103","Womens_Eyebrows","" +"0104","Female Basic Makeup STANDALONE","https://www.nexusmods.com/skyrimspecialedition/mods/44716" +"0105","Empyrean CS SSE 2.1","https://www.nexusmods.com/skyrimspecialedition/mods/38965" +"0106","Great modders' SMP Hair pack and Xing","https://www.nexusmods.com/skyrimspecialedition/mods/31405" +"0107","llygaid Eye - Unreal 1K","https://www.nexusmods.com/skyrimspecialedition/mods/91422" +"0109","Dynamic Animation Replacer (DAR) v1.0.0 for SkyrimSE","https://www.nexusmods.com/skyrimspecialedition/mods/33746" +"0110","Animation Motion Revolution","https://www.nexusmods.com/skyrimspecialedition/mods/50258" +"0111","Nemesis Unlimited Behavior Engine","https://www.nexusmods.com/skyrimspecialedition/mods/60033" +"0112","Gesture Animation Remix (DAR) - main archive","https://www.nexusmods.com/skyrimspecialedition/mods/64420" +"0113","Conditional Gender Animations","https://www.nexusmods.com/skyrimspecialedition/mods/73446" +"0116","Audio Overhaul for Skyrim 2","https://www.nexusmods.com/skyrimspecialedition/mods/12466" +"0117","MLVUCSSE - English Original Voices","https://www.nexusmods.com/skyrimspecialedition/mods/91265" +"0119","Holds SSE Complete - 0.0.9","https://www.nexusmods.com/skyrimspecialedition/mods/10609" +"0120","Guards Armor Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/22671" +"0121","Guards Armor Replacer [RUS]","" +"0122","NordWarUA's Vanilla Armor Replacers SSE","https://www.nexusmods.com/skyrimspecialedition/mods/31679" +"0123","NordWarUA's Vanilla Armor Replacers SSE -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/39681" +"0124","Lanterns Of Skyrim II","" +"0125","Lanterns Of Skyrim II - FOMOD","https://www.nexusmods.com/skyrimspecialedition/mods/30817" +"0128","HD HAIR(SE)","" +"0129","NecDaz Feet v","" +"0130","Feminine Hands for SE","https://www.nexusmods.com/skyrimspecialedition/mods/67522" +"0131","Pandorable's NPCs","https://www.nexusmods.com/skyrimspecialedition/mods/19012" +"0132","PAN_AIO","" +"0133","PAN_DashingDefenders SE","https://www.nexusmods.com/skyrimspecialedition/mods/78600" +"0134","Pandorable's Wicked Witches","https://www.nexusmods.com/skyrimspecialedition/mods/77478" +"0135","Pandorable's NPCs - Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/55877" +"0136","PAN_DevotedDames","https://www.nexusmods.com/skyrimspecialedition/mods/59531" +"0137","Pandorable's Serana","https://www.nexusmods.com/skyrimspecialedition/mods/24931" +"0138","Pandorable's Marvellous Miners","https://www.nexusmods.com/skyrimspecialedition/mods/56399" +"0139","Pandorable's Valerica","https://www.nexusmods.com/skyrimspecialedition/mods/35799" +"0140","Pandorable's Frea and Frida","https://www.nexusmods.com/skyrimspecialedition/mods/31273" +"0141","PAN_Nevri","https://www.nexusmods.com/skyrimspecialedition/mods/45128" +"0142","PAN_Brelyna","https://www.nexusmods.com/skyrimspecialedition/mods/45128" +"0143","Pandorable's Black-Briar Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/33731" +"0144","Pandorable's Warrior Women","https://www.nexusmods.com/skyrimspecialedition/mods/34464" +"0145","Pandorable's Lethal Ladies","https://www.nexusmods.com/skyrimspecialedition/mods/36827" +"0146","PAN_ShieldSisters","https://www.nexusmods.com/skyrimspecialedition/mods/42480" +"0147","Pandorable's NPCs - Males","https://www.nexusmods.com/skyrimspecialedition/mods/42043" +"0148","Pandorable's NPCs - Males 2","https://www.nexusmods.com/skyrimspecialedition/mods/50617" +"0149","Bijin Warmaidens SE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" +"0150","Bijin Warmaidens SE - High-res skin textures for CBBE","https://www.nexusmods.com/skyrimspecialedition/mods/1825" +"0151","Bijin Wives SE 1.1.2","https://www.nexusmods.com/skyrimspecialedition/mods/11247" +"0152","Bijin NPCs SE 1.2.1","https://www.nexusmods.com/skyrimspecialedition/mods/11287" +"0153","Bijin AIO SE for USSEP","https://www.nexusmods.com/skyrimspecialedition/mods/11287" +"0161","Dragonborn Voice Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/84329" +"0162","Bella Voice DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" +"0163","Bella Voice Fix","" +"0164","voicebella maingame and dlc","https://www.nexusmods.com/skyrimspecialedition/mods/89810" +"0165","Name heroine DBVO","https://www.nexusmods.com/skyrimspecialedition/mods/89810" +"0169","IFPV","https://www.nexusmods.com/skyrimspecialedition/mods/22306" +"0170","RaceMenu Special Edition","" +"0171","RaceMenu Special Edition RUS","" +"0172","Alternate Start - Live Another Life","https://www.nexusmods.com/skyrimspecialedition/mods/272" +"0174","Alternate Conversation Camera","https://www.nexusmods.com/skyrimspecialedition/mods/21220" +"0175","SkyHUD","https://www.nexusmods.com/skyrimspecialedition/mods/463" +"0176","Spell Perk Item Distributor (SPID)","https://www.nexusmods.com/skyrimspecialedition/mods/36869" +"0177","Vokrii 3.8.2","https://www.nexusmods.com/skyrimspecialedition/mods/26176" +"0178","Vokrii - Scaling Rebalance","https://www.nexusmods.com/skyrimspecialedition/mods/55091" +"0179","NORDIC UI - Interface Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/49881" +"0180","iNeed - Food, Water and Sleep - Continued","https://www.nexusmods.com/skyrimspecialedition/mods/19390" +"0181","Frostfall 3.4.1 SE Release","https://www.nexusmods.com/skyrimspecialedition/mods/671" +"0182","Campfire 1.12.1SEVR Release","https://www.nexusmods.com/skyrimspecialedition/mods/667" +"0183","SkyrimForBattleV","" +"0184","PC Head Tracking - MCM v4.8 SE","https://www.nexusmods.com/skyrimspecialedition/mods/11993" +"0186","SummonShadowMERCHANT","https://www.nexusmods.com/skyrimspecialedition/mods/2177" +"0188","VioLens - A Killmove Mod SE","https://www.nexusmods.com/skyrimspecialedition/mods/668" +"0189","True Directional Movement","https://www.nexusmods.com/skyrimspecialedition/mods/51614" +"0190","True Directional Movement RU","https://www.nexusmods.com/skyrimspecialedition/mods/53188" +"0191","SkySA","" +"0192","Grip Switch SkySA 1.2.1","https://www.nexusmods.com/skyrim/mods/54056" +"0194","TK Dodge SE","https://www.nexusmods.com/skyrimspecialedition/mods/15309" +"0195","JH Combat Animation Pack","https://www.nexusmods.com/skyrimspecialedition/mods/48500" +"0197","Elder Souls - Sword 2.0 SE","https://www.nexusmods.com/skyrimspecialedition/mods/47191" +"0198","Part 1) SEKIRO HUD by Inpa Skyrim","https://www.nexusmods.com/skyrimspecialedition/mods/41428" +"0199","Part 2) SEKIRO COMBAT","https://www.nexusmods.com/skyrimspecialedition/mods/41428" +"0200","Stances - Add-On","https://www.nexusmods.com/skyrimspecialedition/mods/41251" +"0201","Stances - Dynamic Animation Sets","https://www.nexusmods.com/skyrimspecialedition/mods/40484" +"0202","AMR Stance Framework","https://www.nexusmods.com/skyrimspecialedition/mods/54674" +"0203","Enhanced Enemy AI","https://www.nexusmods.com/skyrimspecialedition/mods/32063" +"0204","Precision","https://www.nexusmods.com/skyrimspecialedition/mods/72347" +"0205","Keytrace","https://www.nexusmods.com/skyrimspecialedition/mods/63362" +"0206","Elden Power Attack","https://www.nexusmods.com/skyrimspecialedition/mods/66711" +"0207","Dark Souls Movement And Stamina Regen","https://www.nexusmods.com/skyrimspecialedition/mods/33135" +"0208","Animated Potions","https://www.nexusmods.com/skyrimspecialedition/mods/73819" +"0209","3PCO - 3rd Person Camera Overhaul","https://www.nexusmods.com/skyrimspecialedition/mods/89516" +"0210","Nock to Tip","" +"0211","Deadly Mutilation","https://www.nexusmods.com/skyrimspecialedition/mods/34917" +"0213","Heroes Of Sovngarde","https://www.nexusmods.com/skyrimspecialedition/mods/3053" +"0214","Populated Dungeons Caves Ruins Legendary Edition","https://www.nexusmods.com/skyrimspecialedition/mods/2820" +"0216","[immyneedscake] Skydraenei by Eriayai CBBE SSE","" +"0217","3BA SkyDraenei","https://www.nexusmods.com/skyrimspecialedition/mods/57617" +"0218","True Demon Race","https://www.nexusmods.com/skyrimspecialedition/mods/58141" +"0222","Acalypha - Fully Voiced Follower","" +"0223","INIGO_V2.4C SE","https://www.nexusmods.com/skyrimspecialedition/mods/1461" +"0224","Song Of The Green 1.4","https://www.nexusmods.com/skyrimspecialedition/mods/11278" +"0225","Refined Auri SSE","https://www.nexusmods.com/skyrimspecialedition/mods/36444" +"0226","SkyMirai Standalone Follower 2_11 SSE","https://www.nexusmods.com/skyrimspecialedition/mods/10908" +"0227","Nicola Avenicci SE 0.3","https://www.nexusmods.com/skyrimspecialedition/mods/6862" +"0229","WIC (Whinter is Coming) Cloaks SSE 2_4","https://www.nexusmods.com/skyrimspecialedition/mods/4933" +"0230","Winter Is Coming - Cloaks RU SE","https://www.nexusmods.com/skyrimspecialedition/mods/62756" +"0231","True Weapons","https://www.nexusmods.com/skyrimspecialedition/mods/38596" +"0232","Eclipse_Mage_Outfit_HDT","" +"0233","[SE] BDOR Navillera","" +"0235","Dominica Preset RM SSE","https://www.nexusmods.com/skyrimspecialedition/mods/70448" +"0236","Irena High Poly Head preset by ElleShet SE","" +"0237","Nirani Indoril Body preset SE by ElleShet","" +"0239","MainMenuRandomizerSE","https://www.nexusmods.com/skyrimspecialedition/mods/33574" +"0240","Main Menu Redone - 1080p","https://www.nexusmods.com/skyrimspecialedition/mods/59993" +"0241","Main Menu Design Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/30810" +"0242","Simple Load Screens","https://www.nexusmods.com/skyrimspecialedition/mods/49529" +"0243","NORDIC UI - Alternate loading screen and start menu","https://www.nexusmods.com/skyrimspecialedition/mods/54153" +"0245","Fantasy Soundtrack Project SE","https://www.nexusmods.com/skyrimspecialedition/mods/5268" +"0246","Dreyma Mod [new Music of Skyrim]","https://www.nexusmods.com/skyrimspecialedition/mods/23386" +"0248","NAT.ENB - ESP WEATHER PLUGIN","https://www.nexusmods.com/skyrimspecialedition/mods/27141" +"0250","NordWarUA's Vanilla Armor Replacers SSE -Patches-","https://www.nexusmods.com/skyrimspecialedition/mods/31679" +"0251","Northern Roads - Patches Compendium","https://www.nexusmods.com/skyrimspecialedition/mods/77893" +"0252","Holds The City Overhaul -RUS-","" +"0253","Majestic Mountains [RUS]","" +"0254","Face Discoloration Fix SE","https://www.nexusmods.com/skyrimspecialedition/mods/42441" +"0255","Simple Load Screens - Russian translation","https://www.nexusmods.com/skyrimspecialedition/mods/50912" +"0256","Precision - Accurate Melee Collisions - RU","https://www.nexusmods.com/skyrimspecialedition/mods/72584" +"0257","Pandorable's NPCs_SSE_v1.4_RU","https://www.nexusmods.com/skyrimspecialedition/mods/27582" +"0258","Pandorables NPCs Males [RUS]","" +"0259","Pandorables NPCs - Males 2 [RUS]","" +"0260","PAN_AIO_small - AI Overhaul SSE patch-1-4-Rus","" +"0261","Irena High Poly Head preset by ElleShet SE 3BBB Body","" +"0262","Nirani Indoril High Poly Head preset SE by ElleShet","" +"0263","Deadly Mutilation V1_3_3 CBBE meshes Pack","https://www.nexusmods.com/skyrimspecialedition/mods/34917" +"0264","Bijin skin compability patch Alternative normal map","https://www.nexusmods.com/skyrimspecialedition/mods/27405" +"0265","SEKIRO COMBAT SE - RU","https://www.nexusmods.com/skyrimspecialedition/mods/57678" +"0266","Nordic UI -RUS-","" +"0267","Campfire 1.12.1 and Frostfall 3.4.1SE","https://www.nexusmods.com/skyrimspecialedition/mods/17925" +"0268","SkyrimForBattleV-Patch","" +"0269","IFPV Detector Plugin","https://www.nexusmods.com/skyrimspecialedition/mods/22306" +"0270","Jaxonz MCM Kicker SE_rus_","" +"0271","SkyUI -RUS-","https://www.nexusmods.com/skyrimspecialedition/mods/21088" +"0272","INIGO -RUS-","" +"0273","Song of the Green _RUS_","" +"0274","Inigo Banter patch","" +"0275","Refined Auri SSE -PATCH-","https://www.nexusmods.com/skyrimspecialedition/mods/36444" +"0276","Refined Auri SSE -RUS-","" +"0277","Vokrii(26176)-2-0-1-RU","https://www.nexusmods.com/skyrimspecialedition/mods/28035" +"0278","Саурон","" +"0279","Sweety Preset","" +"0280","Console font fix - RU","https://www.nexusmods.com/skyrimspecialedition/mods/55792" +"0281","BodySlide output","" +"0282","DBVO NordicUI Patch","https://www.nexusmods.com/skyrimspecialedition/mods/84329" +"0284","Dragonborn Voice Over - Stereo Plugin Replacer","https://www.nexusmods.com/skyrimspecialedition/mods/90417" +"0285","FNIS Overwrite","" +"0286","Nemesis overwrite","" +"0288","Pipe Smoking SE","https://www.nexusmods.com/skyrimspecialedition/mods/13061" +"0289","Pipe Smoking SE RUS","" +"0291","PapyrusUtil SE - Scripting Utility Functions","https://www.nexusmods.com/skyrimspecialedition/mods/13048" +"0292","powerofthree's Papyrus Extender","https://www.nexusmods.com/skyrimspecialedition/mods/22854" diff --git a/fl_dir/blog/index.html b/fl_dir/blog/index.html index 6a7e857..7c0b78e 100644 --- a/fl_dir/blog/index.html +++ b/fl_dir/blog/index.html @@ -1,85 +1,85 @@ -
-

Блог

-
-
-

Загрузка новостей...

- - -
-
-

Пример заголовка

- -
Опубликовано: 22.09.2003 в 7:00
- -
-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -
- - - - - -
-
- - -