forked from tappi287/openvr_fsr_app
-
Notifications
You must be signed in to change notification settings - Fork 0
/
openvr_fsr_app.py
108 lines (88 loc) · 3.23 KB
/
openvr_fsr_app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import logging
import platform
import sys
import webbrowser
import eel
from app import expose_app_methods
from app.app_main import CLOSE_EVENT
from app.app_settings import AppSettings
from app.globals import FROZEN, get_version
from app.log import setup_logging
from app.runasadmin import run_as_admin
from app.utils import AppExceptionHook, capture_app_exceptions
# -- Make sure eel methods are exposed at start-up
expose_app_methods()
# -- Setup logging
setup_logging()
@capture_app_exceptions
def test_exception():
if AppExceptionHook.produce_exception:
AppExceptionHook.produce_exception = False
AppExceptionHook.test_exception()
def start_eel():
logging.info('\n\n\n')
logging.info('#######################################################')
logging.info('################ Starting APP ###########')
logging.info('#######################################################\n\n\n')
if FROZEN:
# Set Exception hook
sys.excepthook = AppExceptionHook.exception_hook
AppSettings.load()
# This will ask for and re-run with admin rights
# if setting needs_admin set.
if AppSettings.needs_admin and not run_as_admin():
return
"""
THIS WILL DISABLE ctypes support! But it will make sure launching an executable
or basically any executable that is loading DLLs will work.
"""
if sys.platform == "win32":
import ctypes
ctypes.windll.kernel32.SetDllDirectoryA(None)
"""
//
"""
page = 'index.html'
host = 'localhost'
port = 8144
eel.init('web')
# TODO: fetch OSError port in use
try:
eel.start(page, host=host, port=port, block=False)
except EnvironmentError:
# If Chrome isn't found, fallback to Microsoft Edge on Win10 or greater
edge_failed = False
if sys.platform in ['win32', 'win64'] and int(platform.release()) >= 10:
try:
eel.start(page, mode='edge', host=host, port=port, block=False)
except Exception as e:
logging.error(e)
edge_failed = True
# Fallback to opening a regular browser window
else:
edge_failed = True
if edge_failed:
eel.start(page, mode=None, app_mode=False, host=host, port=port, block=False)
# Open system default web browser
webbrowser.open_new(f'http://{host}:{port}')
# -- Run until window/tab closed
while not CLOSE_EVENT.is_set():
# --- Event loop ---
CLOSE_EVENT.wait(timeout=10)
# Capture exception events
AppExceptionHook.exception_event_loop()
# -- Test App Exception
test_exception()
# -- Shutdown Greenlets
# logging.debug('Shutting down Greenlets.')
# gevent.joinall((cg, hg, rg), timeout=15.0, raise_error=True)
AppSettings.previous_version = get_version()
AppSettings.save()
# -- Shutdown logging
logging.info('\n\n\n')
logging.info('#######################################################')
logging.info('################ APP SHUTDOWN ###########')
logging.info('#######################################################\n\n\n')
logging.shutdown()
if __name__ == '__main__':
start_eel()