diff --git a/nginx_2.0/.html/footer.html b/nginx_2.0/.html/footer.html new file mode 100644 index 0000000..1630d7d --- /dev/null +++ b/nginx_2.0/.html/footer.html @@ -0,0 +1,38 @@ +
+
+

+ Добро пожаловать на зеркало!
+ Здесь описание зеркала и т.д. (не забудьте всё поменять XD)
+ Инфу по шаблону и прочую хрень можно найти на Discord сервере JCat Trash. +

+

Сборки/клиенты

+

+ На данный момент на зеркале имеются следущие сборки: +

+ +

Использование

+

Для загрузки контента с данного зеркала пропишите его адрес в свой конфиг-файл

+ Например: +
"mirrors": [
+    "https://mirror.site.ru/"
+]
+
+
+

Благодарность

+ +
+ + + + + + + + + \ No newline at end of file diff --git a/nginx_2.0/.html/header.html b/nginx_2.0/.html/header.html new file mode 100644 index 0000000..829f44e --- /dev/null +++ b/nginx_2.0/.html/header.html @@ -0,0 +1,30 @@ + + + + + + JoCat Mirror Template 2.0 + + + + + + + + \ No newline at end of file diff --git a/nginx_2.0/.html/icons/folder-home.svg b/nginx_2.0/.html/icons/folder-home.svg new file mode 100644 index 0000000..d3e765b --- /dev/null +++ b/nginx_2.0/.html/icons/folder-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx_2.0/.html/icons/folder.svg b/nginx_2.0/.html/icons/folder.svg new file mode 100644 index 0000000..6536161 --- /dev/null +++ b/nginx_2.0/.html/icons/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx_2.0/.html/icons/java.svg b/nginx_2.0/.html/icons/java.svg new file mode 100644 index 0000000..cdc5939 --- /dev/null +++ b/nginx_2.0/.html/icons/java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx_2.0/.html/icons/json.svg b/nginx_2.0/.html/icons/json.svg new file mode 100644 index 0000000..dc36add --- /dev/null +++ b/nginx_2.0/.html/icons/json.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx_2.0/.html/icons/zip.svg b/nginx_2.0/.html/icons/zip.svg new file mode 100644 index 0000000..d3c38d3 --- /dev/null +++ b/nginx_2.0/.html/icons/zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/nginx_2.0/.html/logo.png b/nginx_2.0/.html/logo.png new file mode 100644 index 0000000..15c95a8 --- /dev/null +++ b/nginx_2.0/.html/logo.png Binary files differ diff --git a/nginx_2.0/.html/main.css b/nginx_2.0/.html/main.css new file mode 100644 index 0000000..357a5e3 --- /dev/null +++ b/nginx_2.0/.html/main.css @@ -0,0 +1,88 @@ +/* By JCat */ +/* Contacts: https://jocat.ru/ */ + +/* color: #ffde6b; */ +/* color: #7c4dff; */ +/* color: #393939; */ + +body { + scroll-behavior: smooth; + background-color: #fafafa; +} + +.navbar, +.navbar .dropdown-menu { + background-color: #393939; +} + +.navbar a, +.navbar a:active, +.navbar li.active a { + color: #eee; +} + +.navbar a:hover, +.navbar a:focus { + color: #ffde6b; +} + +.navbar-toggler { + border-color: #ccc; +} + +.navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgb(238, 238, 238)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar .dropdown-menu .dropdown-item:hover { + background-color: #444; +} + +.navbar .dropdown-menu .dropdown-divider { + border-color: #666; +} + +.img-logo { + height: 2rem; + margin-right: 10px; +} + +a, +a:hover, +a:focus { + color: #7c4dff; +} + +.breadcrumb { + border-radius: 0; + background-color: transparent; + padding: 8px 15px; + border-bottom: 1px solid #dee2e6; +} + +.js__toggle_content { + display: none; +} +table { + margin-top: 2rem; + font-size: 14px; +} +table tbody { + font-family: monospace; +} +table span { + width: 27px; + display: inline-block; + text-align: center; + margin-right: 10px; +} +table img { + height: 24px; +} +table a:hover { + text-decoration: none; +} + +.list-unstyled { + padding-left: 15px; +} \ No newline at end of file diff --git a/nginx_2.0/.html/main.js b/nginx_2.0/.html/main.js new file mode 100644 index 0000000..6ee2c1f --- /dev/null +++ b/nginx_2.0/.html/main.js @@ -0,0 +1,78 @@ +// By JCat +// Contacts: https://jocat.ru/ + +// Breadcrumbs +let breadcrumbs_el = document.querySelector('#js__breadcrumbs'); +let breadcrumbs = location.pathname.split('/').filter(word => word.length > 0); + +breadcrumbs_el.append(get_breadcrumbs_el('/', 'Home', breadcrumbs.length == 0)); +if (breadcrumbs.length > 0) { + let tree = ''; + breadcrumbs.forEach((link, index) => { + tree += '/'+link; + breadcrumbs_el.append(get_breadcrumbs_el(tree, link, index == breadcrumbs.length-1)); + }); +} + +function get_breadcrumbs_el(link, text, last = false) { + el = document.createElement('li'); + el.classList.add('breadcrumb-item'); + if (last === true) { + el.classList.add('active'); + el.innerHTML = text; + return el; + } + let a = document.createElement('a'); + a.href = link; + a.innerHTML = text; + el.append(a); + return el; +} + +// Toggle content +for (let el of document.getElementsByClassName('js__toggle_content')) { + if (el.dataset.pathname == location.pathname) el.style.display = 'block'; +} + +// Pretty table +let table = document.querySelector('table'); +table.classList.add('table', 'table-hover'); + +let headers = ['Дата загрузки / изменения', 'Размер файла', 'Файл']; +for (let el of table.querySelector('thead').querySelector('tr').children) { + el.children[0].innerText = headers.pop(); +} + +let table_body_el_list = table.querySelector('tbody').children; + +for (let row of table_body_el_list) { + let file_size = row.querySelector('.size'); + if (file_size.innerText != '-') file_size.innerText = formatFileSize(file_size.innerText); + + let file_link = row.querySelector('.link'); + let file_type = file_link.innerHTML.match(/.+<\/a>/)[1]; + let a = file_link.children[0]; + let img = document.createElement('img'); + let img_wrap = document.createElement('span'); + + if (file_type == './') { + a.innerText = '..'; + img.src = '/.html/icons/folder-home.svg'; + } else if (file_type == '/') { + img.src = '/.html/icons/folder.svg'; + } else if (file_type == 'jar') { + img.src = '/.html/icons/java.svg'; + } else { + img.src = '/.html/icons/'+file_type+'.svg'; + } + img_wrap.prepend(img); + a.prepend(img_wrap); +} + +function formatFileSize(bytes) { + var k = 1024, + dp = 0, + sizes = ['Bytes', 'KB', 'MB', 'GB'], + i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(dp)) + ' ' + sizes[i]; +} \ No newline at end of file diff --git a/nginx_2.0/README.md b/nginx_2.0/README.md new file mode 100644 index 0000000..eae77c2 --- /dev/null +++ b/nginx_2.0/README.md @@ -0,0 +1,7 @@ +Для работы всего этого понадобится прикрутить к nginx этот модуль: +https://github.com/aperezdc/ngx-fancyindex + +Его придётся собирать ручками, в принципе и к уже собранному nginx его можно подцепить +Инфы в инете достаточно) + +Кусок конфига для nginx лежит в nginx.conf \ No newline at end of file diff --git a/nginx_2.0/nginx.conf b/nginx_2.0/nginx.conf new file mode 100644 index 0000000..0cce3e1 --- /dev/null +++ b/nginx_2.0/nginx.conf @@ -0,0 +1,8 @@ +location / { + fancyindex on; + fancyindex_header "/.html/header.html"; + fancyindex_footer "/.html/footer.html"; + fancyindex_show_path off; + fancyindex_localtime on; + fancyindex_time_format "%d.%m.%Y %H:%M"; +} \ No newline at end of file