Initial (overdue) commit

TODO:
- enable dynamic loading of button labels and actions
This commit is contained in:
2020-08-27 17:21:17 -07:00
parent 6e83bfb9c5
commit c5b61eee0a
42 changed files with 2739 additions and 1 deletions

98
CMDRConsole/__init__.py Normal file
View File

@@ -0,0 +1,98 @@
import os
import pyautogui
from flask import Flask
from flask import (
Blueprint, flash, g, redirect, render_template, request, session, url_for
)
import CMDRConsole.config_parser
def create_app(test_config=None):
global cmds
global pages
global page
global keys
cmds = config_parser.get_cmds()
pages = config_parser.get_pages()
keys = config_parser.get_keys()
page = 'General'
# create and configure the app
app = Flask(__name__, instance_relative_config=True)
if test_config is None:
# load the instance config, if it exists, when not testing
app.config.from_pyfile('config.py', silent=True)
else:
# load the test config if passed in
app.config.from_mapping(test_config)
# ensure the instance folder exists
try:
os.makedirs(app.instance_path)
except OSError:
pass
@app.route('/', methods=['GET','POST'])
def render_default():
return render_template(pages[page])
@app.route('/General')
@app.route('/Mining')
@app.route('/Exploration')
@app.route('/SRV')
@app.route('/Assault')
@app.route('/Keyboard')
def render_page():
global page
rule = request.url_rule
page = rule.rule.replace('/','');
return render_template(pages[page])
@app.route('/mouse_move', methods=['POST'])
def move_mouse():
d_x = int(request.form['dx'])
d_y = int(request.form['dy'])
x, y = pyautogui.position()
new_x = max([x+d_x, 0])
new_y = max([y+d_y, 0])
try:
pyautogui.moveTo(new_x, new_y)
except:
pass
return "OK"
@app.route('/mouse_tap', methods=['POST'])
def click_mouse():
try:
pyautogui.click()
except:
pass
return "OK"
@app.route('/button_press', methods=['GET','POST'])
def button_press(key = None):
key = request.data.decode("utf-8")
print("'"+key+"'")
if not key:
error = 'Key cannot be blank.'
print(error)
elif key in cmds:
cmd = cmds[key]
pyautogui.press(cmd)
elif key in keys:
cmd = keys[key]
pyautogui.press(cmd)
else:
try:
pyautogui.press(key)
except:
pass
return "OK"
return app