import trigger
-logger = logging.getLogger(__file__)
+logger = logging.getLogger(__name__)
-RECIPE_PAGE = "recipe_1_82400.html"
+RECIPE_PAGE = "recipe-unwrapped_1_82400.html"
RECIPE_PATH = os.path.join(constants.pages_dir, RECIPE_PAGE)
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 iframeRef( frameRef ) {
+ return frameRef.contentWindow
+ ? frameRef.contentWindow.document
+ : frameRef.contentDocument
+ }
+
+ 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);
+ }
+
+ // Get rid of the recipe title bar, it's too big.
+ var recipe = iframeRef(document.getElementById('embedded'))
+ recipe.getElementById('id_main_nav').style.visibility = 'hidden';
+
+ // Brief sleep before doing it all over again.
+ sleep(1000).then(() => {
+ countdown();
+ });
+ }, 1000)
+ }
+ </script>
+ </head>
+ """
+ )
+ f.write(
+ f"""
+ <body onload='javascript:loadedDate = new Date(); countdown();'>
+ <span>
+ <div id="recipe">
+ <IFRAME ID='embedded' WIDTH=100% HEIGHT=100% SRC="{url}"></IFRAME>
+ </div>
+ </span>
+ </body>
+</html>
+ """
)
triggered = True
if not triggered:
- file_utils.remove(RECIPE_PAGE)
- logger.debug("Signaling the trigger")
+ logger.debug("We are no longer triggered.")
+ if file_utils.does_path_exist(RECIPE_PATH):
+ file_utils.remove(RECIPE_PATH)
+ else:
+ logger.debug("We are triggered.")
globals.put("recipe_page_triggered", triggered)
return True