sightplace-rep/base.py

78 lines
2.3 KiB
Python
Raw Normal View History

import sys
import os
import platform
import configparser
from log import Log
log = Log(3)
log.debugOn()
log.debug_level = 3
log.eventOff()
from mouseevents import MouseEvents
from pynput import mouse
from sightfactory import SightFactory
from PyQt6.QtWidgets import QApplication
from pynput.mouse import Controller
import subprocess
def init():
global sights, mousectrl, app, data
data = {}
#init the basic values
app = QApplication(sys.argv)
mousectrl = Controller()
sights = SightFactory()
data["move"] = False
data["active_sight"] = "main"
data["platform"] = {}
data["platform"]["system"] = platform.system()
data["mouse_distance_x"] = 0
data["mouse_distance_y"] = 0
data["display_server"] = ""
if data["platform"]["system"] == "Linux":
args = ["echo -n $XDG_SESSION_TYPE"]
result = subprocess.check_output(args, shell=True)
data["display_server"] = result.decode('ascii')
data["base_dir"]=os.path.abspath(os.getcwd())+os.path.sep
data["template_dir"]=data["base_dir"]+"place"+os.path.sep+"templates"+os.path.sep
data["admin_template"] = data["base_dir"] + "admin" +os.path.sep + "base"+os.path.sep
#LOAD the template config.ini file's content
loadConfigTemplate()
#Events
mouseevent = MouseEvents()
start()
def frameSupported():
if data["display_server"] == "wayland":
return False
return True
def loadConfigTemplate():
config = configparser.ConfigParser()
config.sections()
config.read(data["template_dir"]+"config.ini")
if "DEFAULT" in config:
data["default_template"] = config["DEFAULT"]["default_template"]
data["default_template_page"] = config["DEFAULT"]["default_template_page"]
data["default_template_dir"] = data["template_dir"]+data["default_template"]+os.path.sep
data["sight_mode"] = config["DEFAULT"]["sight_mode"]
log.byCode("CFL1000S","CONFIG.INI file")
else:
log.byCode( "CFL1000F", "Missing 'DEFAULT' data from the templates config.ini folder. It can't start!")
def start():
# Creating admin sight
sights.create("sight-admin", "main")
sights.show("sight-admin")
# Creating the main Sight
sights.create("main", data["default_template_page"])
sights.show("main")
app.exec()