git init / upload 🚀
This commit is contained in:
95
main.py
Normal file
95
main.py
Normal file
@@ -0,0 +1,95 @@
|
||||
import os
|
||||
from flask import Flask
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.events import FileSystemEventHandler
|
||||
|
||||
# -------------- VARIABLES --------------
|
||||
html_file_path = r'C:\<PATH>'
|
||||
host = '0.0.0.0' # http://localhost OR http://<ip_address>
|
||||
port = 80
|
||||
is_oe11 = True # if using OE11 set it to True, for OE12 set it to False (encoding)
|
||||
scroll_pixels = 100
|
||||
scroll_interval = 3 # seconds
|
||||
bottom_wait_time = 3 # seconds
|
||||
top_wait_time = 3 # seconds
|
||||
reload_interval = 35 # seconds
|
||||
# -------------- END VARIABLES --------------
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
class FileChangeHandler(FileSystemEventHandler):
|
||||
def __init__(self, app):
|
||||
self.app = app
|
||||
|
||||
def on_modified(self, event):
|
||||
if event.src_path == html_file_path:
|
||||
with self.app.app_context():
|
||||
self.app.config['TEMPLATES_AUTO_RELOAD'] = True
|
||||
|
||||
@app.route('/')
|
||||
def serve_html():
|
||||
with open(html_file_path, 'r', encoding= ('latin-1' if is_oe11 else 'utf-8') ) as file:
|
||||
content = file.read()
|
||||
content += f'''
|
||||
<style>
|
||||
html {{
|
||||
scroll-behavior: smooth;
|
||||
}}
|
||||
</style>
|
||||
<script>
|
||||
let scrollAmount = {scroll_pixels};
|
||||
let scrollInterval = {scroll_interval} * 1000;
|
||||
let bottomWaitTime = {bottom_wait_time} * 1000;
|
||||
let topWaitTime = {top_wait_time} * 1000;
|
||||
let reloadInterval = {reload_interval} * 1000;
|
||||
let scrollPos = 0;
|
||||
let scrollingDown = true;
|
||||
|
||||
function autoScroll() {{
|
||||
if (scrollingDown) {{
|
||||
window.scrollBy(0, scrollAmount);
|
||||
scrollPos += scrollAmount;
|
||||
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {{
|
||||
scrollingDown = false;
|
||||
setTimeout(reloadPage, bottomWaitTime);
|
||||
return;
|
||||
}}
|
||||
}} else {{
|
||||
window.scrollTo(0, 0);
|
||||
scrollPos = 0;
|
||||
scrollingDown = true;
|
||||
setTimeout(autoScroll, topWaitTime);
|
||||
return;
|
||||
}}
|
||||
setTimeout(autoScroll, scrollInterval);
|
||||
}}
|
||||
|
||||
function reloadPage() {{
|
||||
window.scrollTo(0, 0);
|
||||
setTimeout(() => {{
|
||||
location.reload();
|
||||
}}, 100);
|
||||
}}
|
||||
|
||||
window.onload = function() {{
|
||||
window.scrollTo(0, 0);
|
||||
if (document.body.scrollHeight <= window.innerHeight) {{
|
||||
setTimeout(reloadPage, reloadInterval);
|
||||
}} else {{
|
||||
setTimeout(autoScroll, topWaitTime);
|
||||
}}
|
||||
}};
|
||||
</script>
|
||||
'''
|
||||
return content
|
||||
|
||||
if __name__ == '__main__':
|
||||
event_handler = FileChangeHandler(app)
|
||||
observer = Observer()
|
||||
observer.schedule(event_handler, path=os.path.dirname(html_file_path), recursive=False)
|
||||
observer.start()
|
||||
try:
|
||||
app.run(host=host, port=port)
|
||||
except KeyboardInterrupt:
|
||||
observer.stop()
|
||||
observer.join()
|
||||
Reference in New Issue
Block a user