2020-05-28 18:07:53 +00:00
|
|
|
# Python imports
|
2020-11-22 23:00:20 +00:00
|
|
|
import os, secrets
|
|
|
|
from datetime import timedelta
|
2020-05-28 18:07:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Lib imports
|
2020-11-22 23:40:18 +00:00
|
|
|
import pyautogui
|
2020-06-12 03:38:20 +00:00
|
|
|
import eventlet
|
2020-11-23 05:15:26 +00:00
|
|
|
# import eventlet.debug
|
2020-06-12 03:38:20 +00:00
|
|
|
from engineio.payload import Payload
|
|
|
|
|
2020-11-22 23:00:20 +00:00
|
|
|
# Some fixrs for Websockets
|
|
|
|
eventlet.monkey_patch()
|
|
|
|
# eventlet.debug.hub_prevent_multiple_readers(False)
|
|
|
|
Payload.max_decode_packets = 120 # Fix too many small packets causing error
|
|
|
|
|
2020-06-12 03:38:20 +00:00
|
|
|
|
2020-05-28 18:07:53 +00:00
|
|
|
from flask import Flask
|
|
|
|
from flask_bcrypt import Bcrypt
|
|
|
|
from flask_login import current_user, login_user, logout_user, LoginManager
|
2020-06-12 03:38:20 +00:00
|
|
|
from flask_socketio import SocketIO
|
2020-05-28 18:07:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Apoplication imports
|
|
|
|
|
|
|
|
|
|
|
|
# Configs and 'init'
|
2020-11-22 23:40:18 +00:00
|
|
|
APP_NAME = 'RemoteMouse'
|
2020-11-22 23:00:20 +00:00
|
|
|
ROOT_FILE_PTH = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
|
2020-05-28 18:07:53 +00:00
|
|
|
app = Flask(__name__)
|
2020-11-22 23:00:20 +00:00
|
|
|
app.config.update({
|
2020-11-22 23:40:18 +00:00
|
|
|
"TITLE": APP_NAME,
|
2020-11-22 23:00:20 +00:00
|
|
|
'DEBUG': False,
|
|
|
|
'SECRET_KEY': secrets.token_hex(32),
|
|
|
|
'PERMANENT_SESSION_LIFETIME': timedelta(days = 7).total_seconds()
|
|
|
|
})
|
|
|
|
|
2020-05-28 18:07:53 +00:00
|
|
|
|
2020-06-12 03:38:20 +00:00
|
|
|
# For Websockets
|
2020-11-22 23:00:20 +00:00
|
|
|
socketio = SocketIO(app, async_mode = 'eventlet',
|
|
|
|
cors_allowed_origins = ["*"],
|
|
|
|
path = "socket.io",
|
|
|
|
allow_upgrades = True,
|
|
|
|
manage_session = True,
|
|
|
|
cookie = None,
|
|
|
|
engineio_logger = True,
|
|
|
|
logger = True)
|
|
|
|
|
2020-05-28 18:07:53 +00:00
|
|
|
|
2020-11-22 23:40:18 +00:00
|
|
|
app.jinja_env.globals['TITLE'] = APP_NAME
|
|
|
|
pyautogui.FAILSAFE = False # If we hit corner, that's ok
|
|
|
|
# Let piautogui make updates as quick as it can...
|
|
|
|
pyautogui.MINIMUM_DURATION = 0
|
|
|
|
pyautogui.PAUSE = 0
|
|
|
|
|
2020-05-28 18:07:53 +00:00
|
|
|
from core import routes
|