summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2022-05-18 17:22:07 +0200
committerlassulus <lassulus@lassul.us>2022-05-18 17:22:07 +0200
commitca1621c17f867d006c4c394b3be046d42a6c5c7d (patch)
tree5256ebb49d2a58b347455009791710f1de7a20a1
parent5cbb9aeb7249c51e7a6f4075695e0ca1ec9e0296 (diff)
l radio: rate limit downvotes
-rw-r--r--lass/2configs/radio/controls.html83
-rw-r--r--lass/2configs/radio/default.nix81
2 files changed, 84 insertions, 80 deletions
diff --git a/lass/2configs/radio/controls.html b/lass/2configs/radio/controls.html
new file mode 100644
index 00000000..858dc365
--- /dev/null
+++ b/lass/2configs/radio/controls.html
@@ -0,0 +1,83 @@
+<!doctype html>
+
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <title>The_Playlist Voting!</title>
+<style>
+#good {
+ display: block;
+ width: 100%;
+ border: none;
+ background-color: #04AA6D;
+ padding: 14px;
+ margin: 14px 0 0 0;
+ height: 100px;
+ font-size: 16px;
+ cursor: pointer;
+ text-align: center;
+}
+#bad {
+ display: block;
+ width: 100%;
+ border: none;
+ background-color: red;
+ padding: 14px;
+ height: 100px;
+
+ margin: 14px 0 0 0;
+ font-size: 16px;
+ cursor: pointer;
+ text-align: center;
+}
+</style>
+
+</head>
+
+<body>
+ <div id=votenote></div>
+ <button id=good type="button"> GUT </button>
+
+ <button id=bad type="button"> SCHLECHT </button>
+ <center>
+ Currently Running: <br/><div>
+ <b id=current></b>
+ </div>
+ <div id=vote>
+ </div>
+ <audio controls autoplay="autoplay">
+ <source src="https://radio.lassul.us/radio.ogg" type="audio/ogg">
+ Your browser does not support the audio element.
+ </audio>
+ </center>
+
+ <script>
+ document.getElementById("good").onclick=async ()=>{
+ let result = await fetch("https://radio.lassul.us/good", {"method": "POST"})
+ document.getElementById("vote").textContent = "Dieses Lied findest du gut"
+ };
+ document.getElementById("bad").onclick=async ()=>{
+ let result = await fetch("https://radio.lassul.us/skip", {"method": "POST"})
+ document.getElementById("vote").textContent = "Dieses Lied findest du schlecht"
+ document.getElementById("bad").disabled = true
+ window.setTimeout(function(){
+ document.getElementById("bad").disabled = false
+ }, 100000)
+
+ };
+
+ async function current() {
+ let result = await fetch("https://radio.lassul.us/current", {"method": "GET"})
+ let data = await result.json()
+ document.getElementById("current").textContent = data.name
+ }
+ window.onload = function() {
+ window.setInterval('current()', 10000)
+ current()
+ }
+
+ </script>
+</body>
+</html>
diff --git a/lass/2configs/radio/default.nix b/lass/2configs/radio/default.nix
index 34115f56..a1e220cd 100644
--- a/lass/2configs/radio/default.nix
+++ b/lass/2configs/radio/default.nix
@@ -384,86 +384,7 @@ in {
'';
locations."= /controls".extraConfig = ''
default_type "text/html";
- alias ${pkgs.writeText "controls.html" ''
-<!doctype html>
-
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- <title>The_Playlist Voting!</title>
-<style>
-#good {
- display: block;
- width: 100%;
- border: none;
- background-color: #04AA6D;
- padding: 14px;
- margin: 14px 0 0 0;
- height: 100px;
- font-size: 16px;
- cursor: pointer;
- text-align: center;
-}
-#bad {
- display: block;
- width: 100%;
- border: none;
- background-color: red;
- padding: 14px;
- height: 100px;
-
- margin: 14px 0 0 0;
- font-size: 16px;
- cursor: pointer;
- text-align: center;
-}
-</style>
-
-</head>
-
-<body>
- <div id=votenote></div>
- <button id=good type="button"> GUT </button>
-
- <button id=bad type="button"> SCHLECHT </button>
- <center>
- Currently Running: <br/><div>
- <b id=current></b>
- </div>
- <div id=vote>
- </div>
- <audio controls autoplay="autoplay">
- <source src="https://radio.lassul.us/radio.ogg" type="audio/ogg">
- Your browser does not support the audio element.
- </audio>
- </center>
-
- <script>
- document.getElementById("good").onclick=async ()=>{
- let result = await fetch("https://radio.lassul.us/good", {"method": "POST"})
- document.getElementById("vote").textContent = "Dieses Lied findest du gut"
- };
- document.getElementById("bad").onclick=async ()=>{
- let result = await fetch("https://radio.lassul.us/skip", {"method": "POST"})
- document.getElementById("vote").textContent = "Dieses Lied findest du schlecht"
- };
-
- async function current() {
- let result = await fetch("https://radio.lassul.us/current", {"method": "GET"})
- let data = await result.json()
- document.getElementById("current").textContent = data.name
- }
- window.onload = function() {
- window.setInterval('current()', 10000)
- current()
- }
-
- </script>
-</body>
-</html>
- ''};
+ alias ${./controls.html};
'';
extraConfig = ''
add_header 'Access-Control-Allow-Origin' '*';