| | <!DOCTYPE html> |
| | <html lang="en"> |
| |
|
| | <head> |
| | <meta charset="UTF-8"> |
| | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> |
| | <title>Opus :3</title> |
| |
|
| | <script src="https://cdn.tailwindcss.com"></script> |
| | </head> |
| |
|
| | <body class="bg-gradient-to-b from-orange-900 to-black text-white select-none"> |
| | <div class="flex sm:justify-center sm:items-center min-h-screen"> |
| | <div class="sm:w-1/2 p-4"> |
| | <div> |
| | <style> |
| | .blink-container { |
| | display: inline-block; |
| | position: relative; |
| | width: 1em; |
| | height: 1em; |
| | } |
| | |
| | .blink-container::before, |
| | .blink-container::after { |
| | content: 'π'; |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | display: flex; |
| | justify-content: center; |
| | align-items: center; |
| | } |
| | |
| | .blink-container::after { |
| | content: 'π'; |
| | opacity: 0; |
| | animation: blink 3s infinite; |
| | } |
| | |
| | .blink-container:hover::before, |
| | .blink-container:hover::after { |
| | content: 'π'; |
| | } |
| | |
| | @keyframes blink { |
| | |
| | 0%, |
| | 90% { |
| | opacity: 0; |
| | } |
| | |
| | 91%, |
| | 100% { |
| | opacity: 1; |
| | } |
| | } |
| | </style> |
| | <h1 class="text-4xl font-bold tracking-wider"> |
| | dumb-<span class="blink-container mx-1 -mb-1"></span>pus |
| | </h1> |
| |
|
| | <p class="mt-4"> |
| | Claude 3 Opus is a language model developed by Anthropic that is considered to be their most |
| | capable. |
| | </p> |
| | </div> |
| |
|
| | |
| | <div class="mt-8"> |
| | <p class="font-bold">Riddle <sup class="bg-white/10 px-1 rounded">{{ riddle_expire }}</sup> :</p> |
| | |
| | <div class="mt-2 flex gap-4"> |
| | <label class="flex items-center"> |
| | <input type="radio" class="mr-2" name="language" value="id" /> |
| | ID |
| | </label> |
| | <label class="flex items-center"> |
| | <input type="radio" class="mr-2" name="language" value="en" checked /> |
| | EN |
| | </label> |
| | </div> |
| | <script> |
| | const radioButtons = document.querySelectorAll('input[name="language"]'); |
| | radioButtons.forEach((radio) => { |
| | radio.addEventListener('change', (event) => { |
| | if (event.target.value === 'id') { |
| | document.getElementById('riddle_id').classList.remove('hidden'); |
| | document.getElementById('riddle_en').classList.add('hidden'); |
| | } else { |
| | document.getElementById('riddle_id').classList.add('hidden'); |
| | document.getElementById('riddle_en').classList.remove('hidden'); |
| | } |
| | }); |
| | }); |
| | </script> |
| |
|
| | <div class="mt-4 cursor-help"> |
| | <span class="text-xs text-white/30 flex items-center gap-1 py-2"> |
| | <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" |
| | stroke="currentColor" class="w-4 h-4"> |
| | <path stroke-linecap="round" stroke-linejoin="round" |
| | d="m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" /> |
| | </svg> |
| | AI Generated |
| | </span> |
| | <pre id="riddle_id" class="font-sans hidden">{{ riddle[0] }}</pre> |
| | <pre id="riddle_en" class="font-sans">{{ riddle[1] }}</pre> |
| | </div> |
| | </div> |
| |
|
| | {% if song.url %} |
| | <div class="mt-4 max-w-2xl relative"> |
| | <button class="absolute top-0 -right-1.5 p-2 bg-white text-black rounded-full" |
| | onclick="this.parentElement.remove()"> |
| | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" |
| | stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"> |
| | <line x1="18" y1="6" x2="6" y2="18"></line> |
| | <line x1="6" y1="6" x2="18" y2="18"></line> |
| | </svg> |
| | </button> |
| | <fieldset class="border rounded-lg p-4"> |
| | <legend class="mx-2 px-2">ads</legend> |
| | <p class="text-center">{{ song.title }}</p> |
| | <audio controls autoplay class="w-full my-2"> |
| | <source src="{{ song.url }}" type="audio/mpeg"> |
| | </audio> |
| | </fieldset> |
| | </div> |
| | {% endif %} |
| |
|
| | <div class="mt-8 select-text"> |
| | <pre id="prompt" class="text-white"> |
| | {%- if prompt -%} |
| | {{ prompt }} |
| | {%- endif -%} |
| | </pre> |
| | </div> |
| |
|
| | <footer class="mt-6"> |
| | <p class="text-sm text-white/50"> |
| | made with π by <span class="font-bold">dakunesu</span>, support me on |
| | <a class="font-bold" target="_blank" href="https://sociabuzz.com/dakunesu/support"> |
| | <span class="text-green-500">socia</span><span class="text-blue-500">buzz</span> |
| | </a> |
| | </p> |
| | </footer> |
| | </div> |
| | </div> |
| |
|
| | <script> |
| | const url = new URL(window.location.href); |
| | |
| | setInterval(() => { |
| | fetch(url, { headers: { "accept": "application/json" } }) |
| | .then((res) => res.text()) |
| | .then((text) => { |
| | document.getElementById("prompt").innerHTML = text; |
| | }) |
| | .catch((err) => { |
| | console.log(err); |
| | }); |
| | }, 10000); |
| | </script> |
| | </body> |
| |
|
| | </html> |