Another shot at this.
authorScott Gasch <[email protected]>
Fri, 10 Feb 2023 17:46:30 +0000 (09:46 -0800)
committerScott Gasch <[email protected]>
Fri, 10 Feb 2023 17:46:30 +0000 (09:46 -0800)
recipe_renderer_and_trigger.py

index b4167f0ec98e25d7a8e205eb87e57a1706fa8268..4e331ee586c816ec9a8165eb468aa56dca1b2440 100644 (file)
@@ -15,7 +15,7 @@ import trigger
 
 logger = logging.getLogger(__file__)
 
-RECIPE_PAGE = "recipe_1_82400.html"
+RECIPE_PAGE = "recipe-unwrapped_1_82400.html"
 RECIPE_PATH = os.path.join(constants.pages_dir, RECIPE_PAGE)
 
 
@@ -47,7 +47,57 @@ class RecipeRenderer(renderer.abstaining_renderer):
             if url and len(url) > 0:
                 with file_writer.file_writer(RECIPE_PATH) as f:
                     f.write(
-                        f'<IFRAME width="100%" height="100%" frameborder="0" SRC="{url}"></IFRAME>'
+                        """
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Current Recipe</title>
+    <style>
+      #recipe {
+          height: 100%;
+      }
+      html,
+      body {
+          height: 100%;
+          margin: 0;
+          padding: 0;
+      }
+    </style>
+    <script>
+      const sleep = (milliseconds) => {
+          return new Promise(resolve => setTimeout(resolve, milliseconds))
+      }
+
+      function countdown() {
+          setTimeout(
+              function() {
+                  var now = new Date();
+                  var deltaMs = now.getTime() - loadedDate.getTime();
+                  var totalMs = 120000;
+                  var remainingMs = (totalMs - deltaMs);
+
+                  if (remainingMs <= 0) {
+                      // Reload unconditionally every two minutes.
+                      window.location.reload(true);
+                  }
+
+                  // Brief sleep before doing it all over again.
+                  sleep(1000).then(() => {
+                      countdown();
+                  });
+              }, 1000)
+      }
+    </script>
+  </head>
+  <body onload='javascript:loadedDate = new Date(); countdown();'>
+    <span>
+      <div id="recipe">
+        <IFRAME WIDTH=100% HEIGHT=100% SRC="{url}"></IFRAME>
+      </div>
+    </span>
+  </body>
+</html>
+                        """
                     )
                     triggered = True