| from flask import Flask, render_template |
| import os |
| import time |
| import threading |
| import logging |
| from DrissionPage import ChromiumPage, ChromiumOptions |
|
|
|
|
| |
| app = Flask(__name__) |
|
|
| |
| @app.route('/') |
| def start_server(): |
| return "sever is running" |
|
|
|
|
| def keepAlive(tab, url, sleepTime): |
| while True: |
| time.sleep(sleepTime) |
| try: |
| tab.refresh() |
| if not URL_HIDE: |
| logging.info(f'Refresh {url}') |
| else: |
| logging.info(f'Refresh {mask_middle(url)}') |
| except Exception as e: |
| if not URL_HIDE: |
| logging.error(f'Refresh {url} Error: {e}') |
| else: |
| logging.error(f'Refresh {mask_middle(url)} Error: {e}') |
|
|
| |
| @app.before_first_request |
| def create_keep_alive_threads(): |
| sleepTime = os.environ.get('SLEEP_TIME', '60') |
| URLs = os.environ.get('URLS', '').split(',') |
|
|
| |
| for url in URLs: |
| tab = page.new_tab(url=url) |
| Thread(target=keepAlive, args=(tab, url, int(sleepTime)), daemon=True).start() |
|
|
|
|
| if __name__ == '__main__': |
| |
| logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y/%m/%d %H:%M:%S', level=logging.INFO) |
| logging.info('Start Keeping Alive and Flask Server') |
|
|
| |
| app.run(threaded=True) |