Compare commits
15 Commits
13409e711e
...
1.1.0
Author | SHA1 | Date | |
---|---|---|---|
a4a7c961cc | |||
aaa292d793 | |||
084785f8ac | |||
2ff290c8ac | |||
0c39bc9770 | |||
1976d88870 | |||
91a08c1b66 | |||
4b66a8cf7d | |||
d5965b6a26 | |||
4d4aa42166 | |||
ffd8b1fe8f | |||
05576b1041 | |||
c242ba9a0b | |||
1459a909d1 | |||
eaeb2babfe |
@@ -1,3 +1,3 @@
|
|||||||
# site-virus
|
# BEBRA DREAMERS RULES
|
||||||
|
Interactive site with the rules of our discord chat
|
||||||
|
|
||||||
Site with viruses and scary pictures
|
|
@@ -24,7 +24,7 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"php": "~8.2",
|
"php": "~8.2",
|
||||||
"ext-sodium": "~8.2",
|
"ext-sodium": "~8.2",
|
||||||
"mirzaev/minimal": "^2.0.x-dev",
|
"mirzaev/minimal": "^2.2.1",
|
||||||
"mirzaev/accounts": "~1.2.x-dev",
|
"mirzaev/accounts": "~1.2.x-dev",
|
||||||
"mirzaev/arangodb": "^1.0.0",
|
"mirzaev/arangodb": "^1.0.0",
|
||||||
"mirzaev/vk": "^4.0",
|
"mirzaev/vk": "^4.0",
|
||||||
|
418
composer.lock
generated
@@ -22,48 +22,14 @@ final class index_controller extends core
|
|||||||
*/
|
*/
|
||||||
public function index(array $parameters = []): ?string
|
public function index(array $parameters = []): ?string
|
||||||
{
|
{
|
||||||
// Инициализация загружаемых категорий
|
// Инициализация шутника
|
||||||
$this->variables['include'] = [
|
$this->variables['troller'] = [
|
||||||
'head' => ['self'],
|
'instasamka' => rand(1, 11),
|
||||||
'body' => ['self']
|
'vk' => (bool) rand(0, 1),
|
||||||
|
'whatsapp' => (bool) rand(0, 1),
|
||||||
|
'iphone' => (bool) rand(0, 1),
|
||||||
];
|
];
|
||||||
|
|
||||||
// Инициализация бегущей строки
|
|
||||||
$this->variables['hotline'] = [
|
|
||||||
'id' => $this->variables['request']['id'] ?? 'hotline'
|
|
||||||
];
|
|
||||||
|
|
||||||
// Инициализация параметров бегущей строки
|
|
||||||
$this->variables['hotline']['parameters'] = [
|
|
||||||
// 'step' => 2
|
|
||||||
];
|
|
||||||
|
|
||||||
// Инициализация аттрибутов бегущей строки
|
|
||||||
$this->variables['hotline']['attributes'] = [
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
// Инициализация элементов бегущей строки
|
|
||||||
$this->variables['hotline']['elements'] = [
|
|
||||||
['content' => '1'],
|
|
||||||
[
|
|
||||||
'tag' => 'article',
|
|
||||||
'content' => '2'
|
|
||||||
],
|
|
||||||
['content' => '3'],
|
|
||||||
['content' => '4'],
|
|
||||||
['content' => '5'],
|
|
||||||
['content' => '6'],
|
|
||||||
['content' => '7'],
|
|
||||||
['content' => '8'],
|
|
||||||
['content' => '9'],
|
|
||||||
['content' => '10'],
|
|
||||||
['content' => '11'],
|
|
||||||
['content' => '12'],
|
|
||||||
['content' => '13'],
|
|
||||||
['content' => '14'],
|
|
||||||
['content' => '15']
|
|
||||||
];
|
|
||||||
|
|
||||||
// Генерация представления
|
// Генерация представления
|
||||||
return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables);
|
return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables);
|
||||||
|
BIN
mirzaev/site/rules/system/public/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
mirzaev/site/rules/system/public/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
mirzaev/site/rules/system/public/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 24 KiB |
@@ -1,23 +1,9 @@
|
|||||||
@import url('/fonts/comissioner.ttf');
|
@font-face {
|
||||||
|
font-family: comissioner;
|
||||||
@keyframes koshka_dancing {
|
src: url("/fonts/commissioner.ttf") format("ttf");
|
||||||
100% {
|
font-weight: normal;
|
||||||
bottom: -20px;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes hand_dancing {
|
|
||||||
100% {
|
|
||||||
bottom: -20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes knife_dancing {
|
|
||||||
100% {
|
|
||||||
bottom: calc(-273px + 88px + 20px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--button-light-red-active: #eee4e4;
|
--button-light-red-active: #eee4e4;
|
||||||
@@ -36,13 +22,12 @@
|
|||||||
--red-dark: #8d2a2a;
|
--red-dark: #8d2a2a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
border: none;
|
border: none;
|
||||||
color: var(--text);
|
color: var(--text);
|
||||||
font-family : 'Commissioner', Roboto, sans-serif;
|
font-family: commissioner, Roboto, sans-serif;
|
||||||
transition: 0.1s ease-out;
|
transition: 0.1s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,12 +40,16 @@
|
|||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--red-light);
|
||||||
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: var(--text-hover);
|
color: var(--red-light-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
a:active {
|
a:active {
|
||||||
color: var(--text-active);
|
color: var(--red-dark);
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
@@ -97,52 +86,54 @@ aside {
|
|||||||
div#wrap {
|
div#wrap {
|
||||||
margin-top: -394px;
|
margin-top: -394px;
|
||||||
margin-left: 50vw;
|
margin-left: 50vw;
|
||||||
height: 394px;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div#wrap>img#masha {
|
div#wrap > a > img#masha {
|
||||||
z-index: 1500;
|
z-index: 800;
|
||||||
bottom: 0px;
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
width: 333px;
|
width: 333px;
|
||||||
height: 394px;
|
height: 394px;
|
||||||
position: relative;
|
position: relative;
|
||||||
animation-duration : 1s;
|
cursor: pointer;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
animation-name: koshka_dancing;
|
animation-name: koshka_dancing;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-timing-function: cubic-bezier(.65,.05,.36,1);
|
animation-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
div#wrap>img#hand{
|
:is(div#wrap > a > img#masha, div#wrap > a > #masha_hand):hover {
|
||||||
|
animation-play-state: paused;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#wrap > a > #masha_hand {
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
position: absolute;
|
||||||
|
cursor: pointer;
|
||||||
|
animation-direction: alternate;
|
||||||
|
animation-name: hand_dancing;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
div#wrap > a > #masha_hand > img#hand {
|
||||||
z-index: 500;
|
z-index: 500;
|
||||||
left: -30px;
|
left: -30px;
|
||||||
bottom: -5px;
|
bottom: -5px;
|
||||||
width: 70px;
|
width: 70px;
|
||||||
height: 88px;
|
height: 88px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
|
||||||
animation-duration : .8s;
|
|
||||||
animation-direction: alternate;
|
|
||||||
animation-name : hand_dancing;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-timing-function: cubic-bezier(.65,.05,.36,1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div#wrap>img#knife {
|
div#wrap > a > #masha_hand > img#knife {
|
||||||
z-index: 100500;
|
z-index: 100500;
|
||||||
left: calc(-112px + 70px - 40px);
|
left: calc(-112px + 70px - 40px);
|
||||||
bottom: calc(-273px + 88px + 35px);
|
bottom: calc(-273px + 88px + 35px);
|
||||||
width: 112px;
|
width: 112px;
|
||||||
height: 273px;
|
height: 273px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
animation-duration : .8s;
|
|
||||||
animation-direction: alternate;
|
|
||||||
animation-name : knife_dancing;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-timing-function: cubic-bezier(.65,.05,.36,1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
header {
|
header {
|
||||||
@@ -166,7 +157,7 @@ main {
|
|||||||
width: 800px;
|
width: 800px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
border-radius: 0 0 3px 3px;
|
border-radius: 0 0 3px 3px;
|
||||||
background-color: var(--background-light)
|
background-color: var(--background-light);
|
||||||
}
|
}
|
||||||
|
|
||||||
main > ol {
|
main > ol {
|
||||||
@@ -174,15 +165,39 @@ main>ol {
|
|||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main > ol > small {
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
main > ol > li {
|
main > ol > li {
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
|
display: flow-root list-item;
|
||||||
}
|
}
|
||||||
|
|
||||||
main > ol > li::marker {
|
main > ol > li::marker {
|
||||||
/* font-size: 1.3rem; */
|
/* font-size: 1.3rem; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main > ol > li :has(img) {
|
||||||
|
display: flow-root list-item;
|
||||||
|
}
|
||||||
|
|
||||||
|
main > ol > li > img {
|
||||||
|
float: left;
|
||||||
|
margin-top: 5px;
|
||||||
|
max-height: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
z-index: 3000;
|
z-index: 3000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: 800px) {
|
||||||
|
body {
|
||||||
|
padding-bottom: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -3,8 +3,8 @@ section.popup {
|
|||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100vw;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
#what_image {
|
#troller_image_what {
|
||||||
z-index: 9999999;
|
z-index: 9999999;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
transition: unset;
|
transition: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
#what_image.active {
|
#troller_image_what.active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
BIN
mirzaev/site/rules/system/public/favicon-16x16.png
Normal file
After Width: | Height: | Size: 754 B |
BIN
mirzaev/site/rules/system/public/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg height="32" width="32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h32v32H0z"/><path d="M30 17.349V12h-2v-2h2V2H2v8h2v2H2v8h2v2H2v8h15.349A8.97 8.97 0 0 0 23 32a9.002 9.002 0 0 0 9-9 8.968 8.968 0 0 0-2-5.651zM14.059 22H6v-2h8.522a8.932 8.932 0 0 0-.463 2zM26 12H6v-2h20v2zM4 6h4v2H4V6zm0 10h4v2H4v-2zm4 12H4v-2h4v2zm15 1.883A6.898 6.898 0 0 1 16.115 23 6.898 6.898 0 0 1 23 16.115 6.898 6.898 0 0 1 29.883 23 6.898 6.898 0 0 1 23 29.883z"/><path d="m19 25 2 2 2-2 2 2 2-2-2-2 2-2-2-2-2 2-2-2-2 2 2 2z"/></svg>
|
|
Before Width: | Height: | Size: 552 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M0 6c0-1.1.9-2 2-2h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6zm2 0v2h2V6H2zm1 3v2h2V9H3zm-1 3v2h2v-2H2zm3 0v2h10v-2H5zm11 0v2h2v-2h-2zM6 9v2h2V9H6zm3 0v2h2V9H9zm3 0v2h2V9h-2zm3 0v2h2V9h-2zM5 6v2h2V6H5zm3 0v2h2V6H8zm3 0v2h2V6h-2zm3 0v2h4V6h-4z"/></svg>
|
|
Before Width: | Height: | Size: 328 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h256v256H0z"/><path d="M224 177.3V78.7a8.1 8.1 0 0 0-4.1-7l-88-49.5a7.8 7.8 0 0 0-7.8 0l-88 49.5a8.1 8.1 0 0 0-4.1 7v98.6a8.1 8.1 0 0 0 4.1 7l88 49.5a7.8 7.8 0 0 0 7.8 0l88-49.5a8.1 8.1 0 0 0 4.1-7Z" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m222.9 74.6-94 53.4-95.8-53.4M128.9 128l-.9 106.8"/></svg>
|
|
Before Width: | Height: | Size: 537 B |
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.136 12.117-.596 2.415c.736.185 3.004.921 3.34-.441.35-1.421-2.009-1.789-2.744-1.974Zm.813-3.297-.54 2.191c.612.154 2.5.784 2.806-.455.318-1.293-1.654-1.581-2.266-1.736ZM12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2Zm4.358 8.575a1.743 1.743 0 0 1-1.385 1.611 1.933 1.933 0 0 1 .997 2.661c-.586 1.692-1.977 1.835-3.827 1.481l-.449 1.82-1.085-.274.443-1.795c-.28-.07-.568-.145-.864-.227l-.445 1.804-1.084-.273.45-1.824c-.254-.065-.511-.135-.774-.201l-1.412-.356.539-1.256s.8.215.788.199a.394.394 0 0 0 .498-.26l1.217-4.939a.583.583 0 0 0-.505-.638c.016-.011-.789-.198-.789-.198l.29-1.172 1.495.378-.001.006c.225.056.457.11.693.164l.444-1.802 1.085.274-.436 1.766c.291.068.584.135.87.207l.432-1.755 1.085.274-.445 1.802c1.37.477 2.372 1.193 2.175 2.523Z"/></svg>
|
|
Before Width: | Height: | Size: 825 B |
BIN
mirzaev/site/rules/system/public/images/mirzaev.jpg
Normal file
After Width: | Height: | Size: 292 KiB |
BIN
mirzaev/site/rules/system/public/images/mirzaev2.png
Normal file
After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 7.4 KiB |
BIN
mirzaev/site/rules/system/public/images/xiaomi.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
152
mirzaev/site/rules/system/public/js/troller.js
Executable file
@@ -0,0 +1,152 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
class troller {
|
||||||
|
constructor() {
|
||||||
|
this.what = {
|
||||||
|
// HTML-элемент с изображением
|
||||||
|
sound: document.getElementById("troller_sound_what"),
|
||||||
|
|
||||||
|
// HTML-элемент со звуком
|
||||||
|
image: document.getElementById("troller_image_what"),
|
||||||
|
|
||||||
|
enable() {
|
||||||
|
document.body.onmouseleave = () => this.start();
|
||||||
|
document.body.onmouseenter = () => this.end();
|
||||||
|
},
|
||||||
|
disable() {
|
||||||
|
document.body.onmouseleave = document.body.onmouseenter = undefined;
|
||||||
|
},
|
||||||
|
start() {
|
||||||
|
// Отображение изображения
|
||||||
|
this.image.classList.add("active");
|
||||||
|
|
||||||
|
// Проигрывание звука
|
||||||
|
this.play();
|
||||||
|
|
||||||
|
// Остановка воспроизведения инстасамки
|
||||||
|
if (this.core.instasamka.initialized) this.core.instasamka.pause();
|
||||||
|
},
|
||||||
|
end() {
|
||||||
|
// Сокрытие изображения
|
||||||
|
this.image.classList.remove("active");
|
||||||
|
|
||||||
|
// Возобновление воспроизведения инстасамки
|
||||||
|
if (this.core.instasamka.initialized) this.core.instasamka.play();
|
||||||
|
|
||||||
|
// Остановка звука
|
||||||
|
this.sound.pause();
|
||||||
|
},
|
||||||
|
single(event = "onmouseleave") {
|
||||||
|
if (typeof event === "string") {
|
||||||
|
// Получены обязательные входные параметры
|
||||||
|
|
||||||
|
// Отображение изображения
|
||||||
|
this.image.classList.add("active");
|
||||||
|
|
||||||
|
// Проигрывание звука
|
||||||
|
this.play();
|
||||||
|
|
||||||
|
document.body[event] = function () {
|
||||||
|
this.end();
|
||||||
|
|
||||||
|
document.body[event] = undefined;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
play() {
|
||||||
|
// Воспроизведение звука
|
||||||
|
this.sound.currentTime = 0;
|
||||||
|
this.sound.play();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.instasamka = {
|
||||||
|
// HTML-элемент с аудиозаписью
|
||||||
|
sound: document.getElementById("troller_sound_instasamka"),
|
||||||
|
|
||||||
|
initialized: false,
|
||||||
|
|
||||||
|
play(time) {
|
||||||
|
if (this.sound instanceof HTMLElement) {
|
||||||
|
// Найден звук
|
||||||
|
|
||||||
|
// Инициализация инстасамки
|
||||||
|
if (!this.initialized) this.initialized = true;
|
||||||
|
|
||||||
|
// Инициализация временной метки для воспроизведения
|
||||||
|
if (typeof time === 'number') this.sound.currentTime = time;
|
||||||
|
|
||||||
|
// Воспроизведение звука
|
||||||
|
this.sound.play();
|
||||||
|
} else {
|
||||||
|
// Не найден звук (подразумевается)
|
||||||
|
|
||||||
|
console.log('[mirzaev] [troller] Не удалось найти песню инстасамки');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pause() {
|
||||||
|
if (this.sound instanceof HTMLElement) {
|
||||||
|
// Найден звук
|
||||||
|
|
||||||
|
// Остановка воспроизведения звука
|
||||||
|
this.sound.pause();
|
||||||
|
} else {
|
||||||
|
// Не найден звук (подразумевается)
|
||||||
|
|
||||||
|
console.log('[mirzaev] [troller] Не удалось найти песню инстасамки');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Инициализация ссылок на ядро
|
||||||
|
this.what.core = this.instasamka.core = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
vk() {
|
||||||
|
setInterval(function () {
|
||||||
|
const sound = document.getElementById("troller_sound_vk");
|
||||||
|
|
||||||
|
if (Math.random() > 0.95) {
|
||||||
|
// 5%
|
||||||
|
|
||||||
|
// Воспроизведение звука
|
||||||
|
sound.currentTime = 0;
|
||||||
|
sound.play();
|
||||||
|
}
|
||||||
|
}, 85000);
|
||||||
|
}
|
||||||
|
|
||||||
|
whatsapp() {
|
||||||
|
setInterval(function () {
|
||||||
|
const sound = document.getElementById("troller_sound_whatsup");
|
||||||
|
|
||||||
|
if (Math.random() > 0.97) {
|
||||||
|
// 3%
|
||||||
|
|
||||||
|
// Воспроизведение звука
|
||||||
|
sound.currentTime = 0;
|
||||||
|
sound.play();
|
||||||
|
}
|
||||||
|
}, 125000);
|
||||||
|
}
|
||||||
|
|
||||||
|
iphone() {
|
||||||
|
setInterval(function () {
|
||||||
|
const sound = document.getElementById("troller_sound_iphone");
|
||||||
|
|
||||||
|
if (Math.random() > 0.98) {
|
||||||
|
// 2%
|
||||||
|
|
||||||
|
// Воспроизведение звука
|
||||||
|
sound.currentTime = 0;
|
||||||
|
sound.play();
|
||||||
|
}
|
||||||
|
}, 265000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.dispatchEvent(
|
||||||
|
new CustomEvent("troller.loaded", {
|
||||||
|
detail: { troller },
|
||||||
|
}),
|
||||||
|
);
|
@@ -1,145 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
class troller {
|
|
||||||
static what = {
|
|
||||||
enable() {
|
|
||||||
document.body.onmouseleave = function () {
|
|
||||||
// if (Math.random() > 0.90) {
|
|
||||||
// 10%
|
|
||||||
|
|
||||||
troller.what.start();
|
|
||||||
// }
|
|
||||||
};
|
|
||||||
|
|
||||||
document.body.onmouseenter = function () {
|
|
||||||
troller.what.end();
|
|
||||||
};
|
|
||||||
},
|
|
||||||
disable() {
|
|
||||||
document.body.onmouseleave = document.body.onmouseenter = undefined;
|
|
||||||
},
|
|
||||||
start() {
|
|
||||||
// Отображение изображения
|
|
||||||
document.getElementById("what_image").classList.add("active");
|
|
||||||
|
|
||||||
// Проигрывание звука
|
|
||||||
troller.what.play();
|
|
||||||
},
|
|
||||||
end() {
|
|
||||||
// Сокрытие изображения
|
|
||||||
document.getElementById("what_image").classList.remove("active");
|
|
||||||
|
|
||||||
// Остановка звука
|
|
||||||
document.getElementById("what_sound").pause();
|
|
||||||
},
|
|
||||||
single(event = "onmouseleave") {
|
|
||||||
if (typeof event === "string") {
|
|
||||||
// Получены обязательные входные параметры
|
|
||||||
|
|
||||||
// Отображение изображения
|
|
||||||
document.getElementById("what_image").classList.add("active");
|
|
||||||
|
|
||||||
// Проигрывание звука
|
|
||||||
troller.what.play();
|
|
||||||
|
|
||||||
document.body[event] = function () {
|
|
||||||
troller.what.end();
|
|
||||||
|
|
||||||
document.body[event] = undefined;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
|
||||||
play() {
|
|
||||||
// Инициализация элемента со звуком
|
|
||||||
const what_sound = document.getElementById("what_sound");
|
|
||||||
|
|
||||||
// Воспроизведение звука
|
|
||||||
what_sound.currentTime = 0;
|
|
||||||
what_sound.play();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static vk() {
|
|
||||||
setInterval(function () {
|
|
||||||
const sound = document.getElementById("sound_vk");
|
|
||||||
|
|
||||||
if (Math.random() > 0.95) {
|
|
||||||
// 5%
|
|
||||||
|
|
||||||
// Воспроизведение звука
|
|
||||||
sound.currentTime = 0;
|
|
||||||
sound.play();
|
|
||||||
}
|
|
||||||
}, 85000);
|
|
||||||
}
|
|
||||||
|
|
||||||
static whatsapp() {
|
|
||||||
setInterval(function () {
|
|
||||||
const sound = document.getElementById("sound_whatsup");
|
|
||||||
|
|
||||||
if (Math.random() > 0.97) {
|
|
||||||
// 3%
|
|
||||||
|
|
||||||
// Воспроизведение звука
|
|
||||||
sound.currentTime = 0;
|
|
||||||
sound.play();
|
|
||||||
}
|
|
||||||
}, 125000);
|
|
||||||
}
|
|
||||||
|
|
||||||
static iphone() {
|
|
||||||
setInterval(function () {
|
|
||||||
const sound = document.getElementById("sound_iphone");
|
|
||||||
|
|
||||||
if (Math.random() > 0.98) {
|
|
||||||
// 2%
|
|
||||||
|
|
||||||
// Воспроизведение звука
|
|
||||||
sound.currentTime = 0;
|
|
||||||
sound.play();
|
|
||||||
}
|
|
||||||
}, 265000);
|
|
||||||
}
|
|
||||||
|
|
||||||
static instasamka = {
|
|
||||||
play(track, time) {
|
|
||||||
// Инициализация элемента со звуком
|
|
||||||
const sound = document.querySelectorAll('[data-instasamka]')[track];
|
|
||||||
|
|
||||||
if (sound instanceof HTMLElement) {
|
|
||||||
// Найден звук
|
|
||||||
|
|
||||||
// Воспроизведение звука
|
|
||||||
sound.currentTime = time ?? Math.random() * 100;
|
|
||||||
sound.play();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('[mirzaev] [troller] Не удалось найти песню инстасамки под идентификатором ' + track);
|
|
||||||
|
|
||||||
// Не найден звук (подразумевается)
|
|
||||||
troller.instasamka.play(1, time);
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
troller.what.enable();
|
|
||||||
|
|
||||||
if (Math.random() > 0.60) {
|
|
||||||
// 40%
|
|
||||||
|
|
||||||
troller.vk();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Math.random() > 0.60) {
|
|
||||||
// 40%
|
|
||||||
|
|
||||||
troller.whatsapp();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Math.random() > 0.60) {
|
|
||||||
// 40%
|
|
||||||
|
|
||||||
troller.iphone();
|
|
||||||
}
|
|
1
mirzaev/site/rules/system/public/site.webmanifest
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
BIN
mirzaev/site/rules/system/public/sounds/putin.mp3
Normal file
@@ -4,7 +4,36 @@
|
|||||||
|
|
||||||
{% block meta %}
|
{% block meta %}
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=800px">
|
||||||
|
<meta name="HandheldFriendly" content="true">
|
||||||
|
<meta name="MobileOptimized" content="width">
|
||||||
|
<meta content='yes' name='apple-mobile-web-app-capable' />
|
||||||
|
<meta name="description" content='Rules of our Discord server "BEBRA DREAMERS"' />
|
||||||
|
<meta name="keywords" content="MIRZAEV, BEBRA DREAMERS, rules" />
|
||||||
|
<meta name="author" content="MIRZAEV" />
|
||||||
|
<meta name="revised" content="04-01-2024" />
|
||||||
|
<meta property="og:title" content="BEBRA DREAMERS RULES" />
|
||||||
|
<meta property="og:type" content="article" />
|
||||||
|
<meta property="article:published_time" content="2024-01-04" />
|
||||||
|
<meta property="article:author" content="MIRZAEV" />
|
||||||
|
<meta property="article:section" content="community" />
|
||||||
|
<meta property="article:tag" content="MIRZAEV, BEBRA DREAMERS, rules" />
|
||||||
|
<meta property="og:url" content="https://rules.bebra.team/" />
|
||||||
|
<meta property="og:image" content="https://rules.bebra.team/images/mirzaev.jpg" />
|
||||||
|
<meta property="og:image" content="https://rules.bebra.team/images/mirzaev2.png" />
|
||||||
|
<meta property="og:description" content='Rules of our Discord server "BEBRA DREAMERS"' />
|
||||||
|
<meta property="og:site_name" content="bebra.team" />
|
||||||
|
<meta property="og:video" content="https://rules.bebra.team/videos/welcome.mp4" />
|
||||||
|
<meta property="og:audio" content="https://rules.bebra.team/sounds/putin.mp3" />
|
||||||
|
<meta property="twitter:card" content="summary">
|
||||||
|
<meta property="twitter:creator" content="@mirzaev_sexy">
|
||||||
|
<meta property="twitter:site" content="@mirzaev_sexy">
|
||||||
|
<meta property="twitter:url" content="https://rules.bebra.team/">
|
||||||
|
<meta property="twitter:title" content="BEBRA DREAMERS RULES">
|
||||||
|
<meta property="twitter:description" content='Rules of our Discord server "BEBRA DREAMERS"'>
|
||||||
|
<meta property="twitter:image" content="https://rules.bebra.team/images/mirzaev.jpg">
|
||||||
|
<link rel="icon" type="image/png" href="/favicon.ico">
|
||||||
|
|
||||||
{% for meta in head.metas %}
|
{% for meta in head.metas %}
|
||||||
<meta {% for name, value in meta.attributes %}{{name}}="{{value}}" {% endfor %}>
|
<meta {% for name, value in meta.attributes %}{{name}}="{{value}}" {% endfor %}>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@@ -2,10 +2,29 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div id="wrap" >
|
<div id="wrap" class="unselectable">
|
||||||
<img id="masha" src="/images/photo_with_kitten.png" alt="Кошка Маша">
|
<style>
|
||||||
<img id="hand" src="/images/photo_with_hand.png" alt="я помню бебра большой">
|
@keyframes koshka_dancing {
|
||||||
<img id="knife" src="/images/photo_with_knife.png" alt="почему адблок сучара банит мои картинки">
|
100% {
|
||||||
|
bottom: -{{ random(15, 40) }}px;
|
||||||
|
left: {{ random(-5, 5) }}px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes hand_dancing {
|
||||||
|
100% {
|
||||||
|
bottom: -{{ random(10, 22) }}px;
|
||||||
|
left: {{ random(-20, 20) }}px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<a href="https://vk.me/join/gbi_1CbxQrWPZsgQsKMO/_GpWEOYy1XWpSU=">
|
||||||
|
<img id="masha" style="animation-duration: {{ random(8, 10) / 10 }}s" src="/images/photo_with_kitten.png" alt="Кошка Маша" ondragstart="return false">
|
||||||
|
<div id="masha_hand" style="animation-duration: {{ random(8, 10) / 10 }}s">
|
||||||
|
<img id="hand" src="/images/photo_with_hand.png" alt="я помню бебра большой" ondragstart="return false">
|
||||||
|
<img id="knife" src="/images/photo_with_knife.png" alt="почему адблок сучара банит мои картинки" ondragstart="return false">
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<header>
|
<header>
|
||||||
<h1 class="unselectable">ПРАВИЛА БЕСЕДЫ</h1>
|
<h1 class="unselectable">ПРАВИЛА БЕСЕДЫ</h1>
|
||||||
|
@@ -1,20 +1,20 @@
|
|||||||
{% extends "core.html" %}
|
{% extends "core.html" %}
|
||||||
|
|
||||||
{% use "core.html" with css as core_css, body as core_body, js as core_js, js_init as core_js_init %}
|
{% use "core.html" with css as core_css, body as core_body, js as core_js, js_init as core_js_init %}
|
||||||
{% use "trolling.html" with css as trolling_css, body as trolling_body, js as trolling_js %}
|
{% use "troller.html" with css as troller_css, body as troller_body, js as troller_js, js_init as troller_js_init %}
|
||||||
{% use "popups/rules.html" with css as popup_rules_css, body as popup_rules_body %}
|
{% use "popups/rules.html" with css as popup_rules_css, body as popup_rules_body %}
|
||||||
{% use "header.html" with css as header_css, body as header_body, js as header_js, js_init as header_js_init %}
|
{% use "header.html" with css as header_css, body as header_body, js as header_js, js_init as header_js_init %}
|
||||||
|
|
||||||
{% block css %}
|
{% block css %}
|
||||||
{{ block('core_css') }}
|
{{ block('core_css') }}
|
||||||
{{ block('trolling_css') }}
|
{{ block('troller_css') }}
|
||||||
{{ block('popup_rules_css') }}
|
{{ block('popup_rules_css') }}
|
||||||
{{ block('header_css') }}
|
{{ block('header_css') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
{{ block('core_body') }}
|
{{ block('core_body') }}
|
||||||
{{ block('trolling_body') }}
|
{{ block('troller_body') }}
|
||||||
{{ block('popup_rules_body') }}
|
{{ block('popup_rules_body') }}
|
||||||
{{ block('header_body') }}
|
{{ block('header_body') }}
|
||||||
|
|
||||||
@@ -30,11 +30,12 @@
|
|||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
{{ block('core_js') }}
|
{{ block('core_js') }}
|
||||||
{{ block('trolling_js') }}
|
{{ block('troller_js') }}
|
||||||
{{ block('header_js') }}
|
{{ block('header_js') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js_init %}
|
{% block js_init %}
|
||||||
{{ block('core_js_init') }}
|
{{ block('core_js_init') }}
|
||||||
{{ block('header_js_init') }}
|
{{ block('header_js_init') }}
|
||||||
|
{{ block('troller_js_init') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -14,8 +14,8 @@
|
|||||||
</ol>
|
</ol>
|
||||||
<div class="row separated">
|
<div class="row separated">
|
||||||
<button
|
<button
|
||||||
onclick="troller.instasamka.play(Math.round(Math.random() * 10)); troller.what.play(); this.parentElement.parentElement.parentElement.remove();">Прочитал</button>
|
onclick="bebra.instasamka.play(Math.random() * 100); this.parentElement.parentElement.parentElement.remove();">Прочитал</button>
|
||||||
<button onclick="troller.what.play(); alert('ты идиот?'); this.disabled = true">Не прочитал</button>
|
<button onclick="bebra.what.play(); alert('ты идиот?'); this.disabled = true">Не прочитал</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
@@ -163,4 +163,34 @@
|
|||||||
<li>шарить за бебру</li>
|
<li>шарить за бебру</li>
|
||||||
<li>правило номер 129 (связано с 131) было хакировано альянсом злодеев и мы прилагаем все усилия для его
|
<li>правило номер 129 (связано с 131) было хакировано альянсом злодеев и мы прилагаем все усилия для его
|
||||||
восстановления</li>
|
восстановления</li>
|
||||||
|
<small>добавлено новые правила 27.03.2023</small>
|
||||||
|
<li>Мы русские</li>
|
||||||
|
<li>Любить россию обязательно всем</li>
|
||||||
|
<li>Я люблю Российскую федерацию</li>
|
||||||
|
<small>05.04.2023</small>
|
||||||
|
<li><a href="https://vk.com/id408864038">лёше</a> запрещено публиковать .gif изображения,
|
||||||
|
изображения
|
||||||
|
сексуального характера, изображения прикольного характера</li>
|
||||||
|
<li>ВНИМАНИЕ в чате разрешён phonk с 22:00 по 24:00</li>
|
||||||
|
<li><a href="https://vk.com/id621401005">ольга</a> теперь детка</li>
|
||||||
|
<small>09.04.2023</small>
|
||||||
|
<li>огузок запрещён.</li>
|
||||||
|
<small>2023.04.10</small>
|
||||||
|
<li>ходатайства запрещены</li>
|
||||||
|
<li><a href="https://vk.com/id214547089">даниил_богданов</a> в уголовном розыске</li>
|
||||||
|
<li>шутить двусмысленно запрещено</li>
|
||||||
|
<li>нарушать правило 99 запрещено</li>
|
||||||
|
<li>я хочу девочку</li>
|
||||||
|
<li>присылать фотографии в ворд документах запрещено</li>
|
||||||
|
<li>новое правило налить мне кофе</li>
|
||||||
|
<small>2023.04.11</small>
|
||||||
|
<li>мозг данила</li>
|
||||||
|
<li>декоммунизация декапитализация + дековидизация</li>
|
||||||
|
<li>мы скоро закроемся</li>
|
||||||
|
<small>2023.04.13</small>
|
||||||
|
<li>мелкий здарова</li>
|
||||||
|
<li><a href="https://vk.com/id214547089">даниил_богданов</a> разрабатывает госуслуги бля</li>
|
||||||
|
<li>ванда в чате)</li>
|
||||||
|
<li>томатные спагетти запрещены</li>
|
||||||
|
<li><img src="/images/xiaomi.jpg" alt="Взял себе Xiaomi"></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
67
mirzaev/site/rules/system/views/troller.html
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
{% block css %}
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/troller.css" />
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<img id="troller_image_what" class="hide" src="/images/what.png" />
|
||||||
|
<audio id="troller_sound_what" class="hide" src="/sounds/what.mp3" preload="auto"></audio>
|
||||||
|
{% if troller.vk %}
|
||||||
|
<audio id="troller_sound_vk" class="hide" src="/sounds/vk.mp3" preload="auto"></audio>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('troller.initialized', function () {
|
||||||
|
// Инициализирован шутник
|
||||||
|
|
||||||
|
// Активация интервального воспроизведения звука сообщения ВКонтакте
|
||||||
|
bebra.vk();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
{% if troller.whatsapp %}
|
||||||
|
<audio id="troller_sound_whatsup" class="hide" src="/sounds/whatsup.mp3" preload="auto"></audio>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('troller.initialized', function () {
|
||||||
|
// Инициализирован шутник
|
||||||
|
|
||||||
|
// Активация интервального воспроизведения звука сообщения WhatsApp
|
||||||
|
bebra.whatsapp();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
{% if troller.iphone %}
|
||||||
|
<audio id="troller_sound_iphone" class="hide" src="/sounds/iphone.mp3" preload="auto"></audio>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('troller.initialized', function () {
|
||||||
|
// Инициализирован шутник
|
||||||
|
|
||||||
|
// Активация интервального воспроизведения звука сообщения iPhone
|
||||||
|
bebra.iphone();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
<audio id="troller_sound_instasamka" class="hide" src="/sounds/instasamka/{{ troller.instasamka ?? 3 }}.mp3"
|
||||||
|
preload="auto" loop="true"></audio>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
<script src="/js/troller.js" defer></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block js_init %}
|
||||||
|
<script>
|
||||||
|
// Инициализация переменной шутника в общей области видимости
|
||||||
|
let bebra;
|
||||||
|
|
||||||
|
document.addEventListener('troller.loaded', function (e) {
|
||||||
|
// Загружен документ с классом шутника
|
||||||
|
|
||||||
|
// Инициализация шутника
|
||||||
|
bebra = new e.detail.troller;
|
||||||
|
|
||||||
|
// Вызов события о том, что шутник инициализирован
|
||||||
|
document.dispatchEvent(new CustomEvent("troller.initialized"));
|
||||||
|
|
||||||
|
// Активация изображения при потере фокуса с окна
|
||||||
|
bebra.what.enable();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
@@ -1,26 +0,0 @@
|
|||||||
{% block css %}
|
|
||||||
<link rel="stylesheet" type="text/css" href="/css/trolling.css" />
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block body %}
|
|
||||||
<img id="what_image" class="hide" src="/images/what.png" />
|
|
||||||
<audio id="what_sound" class="hide" src="/sounds/what.mp3" controls></audio>
|
|
||||||
<audio id="sound_vk" class="hide" src="/sounds/vk.mp3" controls></audio>
|
|
||||||
<audio id="sound_whatsup" class="hide" src="/sounds/whatsup.mp3" controls></audio>
|
|
||||||
<audio id="sound_iphone" class="hide" src="/sounds/iphone.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/1.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/2.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/3.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/4.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/5.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/6.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/7.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/8.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/9.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/10.mp3" controls></audio>
|
|
||||||
<audio data-instasamka class="hide" src="/sounds/instasamka/11.mp3" controls></audio>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block js %}
|
|
||||||
<script src="/js/trolling.js" defer></script>
|
|
||||||
{% endblock %}
|
|