UNPKG

white-inc-bomber

Version:

White revenge to fucking, stupid bitards from Necrasovka.

146 lines (129 loc) 10.5 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>WhiteBomb</title> <link rel="stylesheet" href="./style/index.css"> </head> <body> <div class="White-Revenge"> <form id="form" class="form" method="post" action="http://localhost:8080/revenge/"> <svg version="1.1" id="logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 150" xml:space="preserve"> <defs> <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" style="stop-color:#ffffff;stop-opacity:1" /> <stop offset="100%" style="stop-color:#cccccc;stop-opacity:1" /> </linearGradient> <filter id="dropshadow" height="130%"> <feGaussianBlur in="SourceAlpha" stdDeviation="3" /> <feOffset dx="2" dy="2" result="offsetblur" /> <feMerge> <feMergeNode /> <feMergeNode in="SourceGraphic" /> </feMerge> </filter> </defs> <text x="50%" y="50%" font-family="Helvetica, Arial, sans-serif" font-size="48" fill="url(#gradient)" text-anchor="middle" alignment-baseline="middle" filter="url(#dropshadow)"> <tspan x="50%" dy="0em">White Inc.</tspan> </text> <g xmlns="http://www.w3.org/2000/svg" data-name="Layer 3" fill="white"> <path d="M54,18a12.12181,12.12181,0,0,1,2,.17731V16a9,9,0,0,0-18,0v2Z" /> <path d="M67.36426,6.63574a8.98769,8.98769,0,0,0-12.7804.064q.46756.38269.90149.81494A11.9217,11.9217,0,0,1,59,16v3.099a11.95167,11.95167,0,0,1,5.831,16.033A9.0025,9.0025,0,0,0,70,27V13A8.94353,8.94353,0,0,0,67.36426,6.63574Z" /> <path d="M75,7a8.93967,8.93967,0,0,0-3.27637.62634A11.93849,11.93849,0,0,1,73,13V27a12.04083,12.04083,0,0,1-4.43195,9.28314A8.99169,8.99169,0,0,0,84,30V16A9.00984,9.00984,0,0,0,75,7Z" /> <path d="M89,10a8.94069,8.94069,0,0,0-3.28418.62921A11.90954,11.90954,0,0,1,87,16V30a11.979,11.979,0,0,1-4.42175,9.29431A8.99218,8.99218,0,0,0,98,33V19A9.00984,9.00984,0,0,0,89,10Z" /> <path d="M38.53174,73.92871A1.9971,1.9971,0,0,1,40.09131,74.957c1.25049,2.27832,3.34863,7.57617,3.34863,17.45313,0,.46289,0,.92676-.00977,1.40918a113.91779,113.91779,0,0,1-3.2301,23.21515c.34113.09583.6723.19373,1.02649.2868A91.65428,91.65428,0,0,0,64,120a91.69981,91.69981,0,0,0,22.71-2.66113c.5741-.14972,1.12384-.30469,1.66388-.46161a79.40732,79.40732,0,0,1-4.15411-23.30695C84.15625,80.00977,89.373,74.457,89.41406,74.41406a1.98635,1.98635,0,0,0,.14844-.165A38.52081,38.52081,0,0,0,98,50.19043V39.30475a10.9662,10.9662,0,0,1-17.73724.3512,10.96436,10.96436,0,0,1-14-3,10.93078,10.93078,0,0,1-3.15814,1.13983A11.96939,11.96939,0,0,1,54,42H47a2.00229,2.00229,0,0,0-2,2v2.666A18.97865,18.97865,0,0,1,59,65a2,2,0,0,1-4,0A14.98293,14.98293,0,0,0,42.64795,50.2334,2.00031,2.00031,0,0,1,41,48.26465V44a6.00656,6.00656,0,0,1,6-6h7a8,8,0,1,0,0-16H33a8.00917,8.00917,0,0,0-8,8V59A14.93922,14.93922,0,0,0,38.53174,73.92871Z" /> <path d="M86.24176,92.37708c-.00787.39374-.02393.77423-.022,1.18347a77.51457,77.51457,0,0,0,4.06055,22.71l.62109,1.95313-1.96875.57324c-.55762.16309-1.126.32324-1.71875.47754A93.70918,93.70918,0,0,1,64,122a93.67365,93.67365,0,0,1-23.27979-2.74414c-.25879-.06738-.50537-.1377-.752-.208l-2.15039-.60547.43457-1.8623A112.0932,112.0932,0,0,0,41.43066,93.7793c.009-.45618.009-.89508.009-1.3324C27.96008,95.619,20,101.34595,20,108c0,6.32129,7.18115,11.835,19.70361,15.125A97.70075,97.70075,0,0,0,64,126a97.81586,97.81586,0,0,0,24.22461-2.85449C100.792,119.86719,108,114.34668,108,108,108,101.2417,99.93408,95.52124,86.24176,92.37708Z" /> </g> <g xmlns="http://www.w3.org/2000/svg" data-name="Layer 3" fill="white" transform="translate(500, 0) scale(-1, 1)"> <path d="M54,18a12.12181,12.12181,0,0,1,2,.17731V16a9,9,0,0,0-18,0v2Z" /> <path d="M67.36426,6.63574a8.98769,8.98769,0,0,0-12.7804.064q.46756.38269.90149.81494A11.9217,11.9217,0,0,1,59,16v3.099a11.95167,11.95167,0,0,1,5.831,16.033A9.0025,9.0025,0,0,0,70,27V13A8.94353,8.94353,0,0,0,67.36426,6.63574Z" /> <path d="M75,7a8.93967,8.93967,0,0,0-3.27637.62634A11.93849,11.93849,0,0,1,73,13V27a12.04083,12.04083,0,0,1-4.43195,9.28314A8.99169,8.99169,0,0,0,84,30V16A9.00984,9.00984,0,0,0,75,7Z" /> <path d="M89,10a8.94069,8.94069,0,0,0-3.28418.62921A11.90954,11.90954,0,0,1,87,16V30a11.979,11.979,0,0,1-4.42175,9.29431A8.99218,8.99218,0,0,0,98,33V19A9.00984,9.00984,0,0,0,89,10Z" /> <path d="M38.53174,73.92871A1.9971,1.9971,0,0,1,40.09131,74.957c1.25049,2.27832,3.34863,7.57617,3.34863,17.45313,0,.46289,0,.92676-.00977,1.40918a113.91779,113.91779,0,0,1-3.2301,23.21515c.34113.09583.6723.19373,1.02649.2868A91.65428,91.65428,0,0,0,64,120a91.69981,91.69981,0,0,0,22.71-2.66113c.5741-.14972,1.12384-.30469,1.66388-.46161a79.40732,79.40732,0,0,1-4.15411-23.30695C84.15625,80.00977,89.373,74.457,89.41406,74.41406a1.98635,1.98635,0,0,0,.14844-.165A38.52081,38.52081,0,0,0,98,50.19043V39.30475a10.9662,10.9662,0,0,1-17.73724.3512,10.96436,10.96436,0,0,1-14-3,10.93078,10.93078,0,0,1-3.15814,1.13983A11.96939,11.96939,0,0,1,54,42H47a2.00229,2.00229,0,0,0-2,2v2.666A18.97865,18.97865,0,0,1,59,65a2,2,0,0,1-4,0A14.98293,14.98293,0,0,0,42.64795,50.2334,2.00031,2.00031,0,0,1,41,48.26465V44a6.00656,6.00656,0,0,1,6-6h7a8,8,0,1,0,0-16H33a8.00917,8.00917,0,0,0-8,8V59A14.93922,14.93922,0,0,0,38.53174,73.92871Z" /> <path d="M86.24176,92.37708c-.00787.39374-.02393.77423-.022,1.18347a77.51457,77.51457,0,0,0,4.06055,22.71l.62109,1.95313-1.96875.57324c-.55762.16309-1.126.32324-1.71875.47754A93.70918,93.70918,0,0,1,64,122a93.67365,93.67365,0,0,1-23.27979-2.74414c-.25879-.06738-.50537-.1377-.752-.208l-2.15039-.60547.43457-1.8623A112.0932,112.0932,0,0,0,41.43066,93.7793c.009-.45618.009-.89508.009-1.3324C27.96008,95.619,20,101.34595,20,108c0,6.32129,7.18115,11.835,19.70361,15.125A97.70075,97.70075,0,0,0,64,126a97.81586,97.81586,0,0,0,24.22461-2.85449C100.792,119.86719,108,114.34668,108,108,108,101.2417,99.93408,95.52124,86.24176,92.37708Z" /> </g> </svg> <input id="phone" type="phone" required placeholder="Номер: +7(999)-999-99-99" title="Введите номер в формате +7(999)-999-99-99" maxlength="12" />/> <input id="streams" type="text" required placeholder="Потоки (повторения): 1 - 2 символа" title="Введите количество потоков" maxlength="2" />/> <button type="submit">Отправить</button> <div class="results"> <pre id="results" title="Копировать">Тут, будут отображаться результаты исполнения бомбера.</pre> </div> </form> </div> <script> const phoneInput = document.querySelector('#phone'); phoneInput.addEventListener('input', function () { let value = this.value; if (!value) { this.value = '+'; return; } if (value.charAt(0) !== '+') { value = '+' + value.replace(/\+/g, ''); } else { value = '+' + value.slice(1).replace(/\+/g, ''); } value = '+' + value.slice(1).replace(/\D/g, ''); this.value = value; }); const form = document.querySelector('#form'); const resultsWindow = document.querySelector('#results'); form.addEventListener('submit', async function (event) { event.preventDefault(); const phoneValue = phoneInput.value; const streams = document.body.querySelector('#streams').value; const data = { phone: phoneValue, streams: streams, }; try { const response = await fetch(form.action, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data) }); if (!response.ok) { throw new Error(`Ошибка: ${response.status} ${response.statusText}`); } const results = await response.json(); console.log('Ответ от сервера:', results); resultsWindow.innerHTML = results.results.map((result, index) => { result.name = result.name.replace(/[.,]/g, ''); const margin = index < (results.results.length - 1) ? '\n\n<hr>\n' : ''; const status = result.status === 'rejected' ? `<span style="color: red;">${result.status}</span>` : `<span style="color: green;">${result.status}</span>`; return 'Сервис: ' + result.name + '\n' + 'Статус: ' + status + '\n' + 'Причина: ' + (result.reason || 'Слишком славно у вас всё идёт, молодой человек.') + margin; }).join(''); } catch (error) { console.error('Ошибка при отправке запроса:', error); } }); resultsWindow.addEventListener('click', async () => { try { await navigator.clipboard.writeText(resultsWindow.textContent); resultsWindow.classList.add('hovered'); setTimeout(() => { resultsWindow.classList.remove('hovered'); }, 1000); } catch (err) { console.error('Ошибка при копировании текста: ', err); } }); </script> </body> </html>