Auxiliar Medico
Auxiliar Medico
import logging
import logging.config
import json
import subprocess
import sys
from sys import version_info
from sys import argv
from sys import argv
from distutils import spawn
logger = logging.getLogger(__name__)
logging.basicConfig(filename=logfile, filemode='w', level=logging.DEBUG)
if (os.path.exists(configLogfileName)):
logConfigFile = open(configLogfileName)
config = json.load(logConfigFile)
logging.config.dictConfig(config)
else:
logging.basicConfig(level=logging.DEBUG, format="%(levelname)s %(message)s")
sys.excepthook = handle_unhandled_exception
logging.info("Starting roblox launcher: " + " ".join(argv))
class Browser:
def __init__(self, p, exe, l, i):
self.pgrep_pattern = p
self.browser_exe = exe
self.log_location = l
self.invocation = i
def __str__(self):
return self.pgrep_pattern
def __init__(self, p, exe, l, i):
self.pgrep_pattern = p
self.browser_exe = exe
self.log_location = l
self.invocation = i
def __str__(self):
return self.pgrep_pattern
def launcher_help():
print("All browses are supported when " + launcher_name +
" is selected as the roblox opening application.")
print("Valid browses for independent invocation are: " +
str([str(webb) for webb in browser_list]))
print()
print("All browses are supported when " + launcher_name + "\n"
"is configured for xdg-open. xdg-open associates the url \n"
"prefix 'roblox-player:' with an application to handle the url.")
print("Install, test then in your browser select the roblox game play button.")
print()
print("Install xdg-open config: $ " + launcher_name + " install ")
print("Test xdg-open : $ " + launcher_name + " test ")
print("Uninstall xdg-open config: $ " + launcher_name + " uninstall ")
print()
print("Enable logging to file for debugging: $ " + launcher_name + " logon ")
print("Captures and stores messages for launcher xdg-open invocation.")
print("Disable by removing the log.cfg file.")
print()
print("Valid browses for invocation without configuring xdg-open: " +
str([str(webb) for webb in browser_list]))
print("Execute examples:")
print("To execute the default browser: $ "+launcher_name)
print("To execute the brave browser: $ "+launcher_name + " " +
BRAVE.pgrep_pattern)
print("Execute the default browser: $ "+ launcher_name)
print("Execute the brave browser: $ "+ launcher_name + " "
+ BRAVE.pgrep_pattern)
browser = None
robloxData = None
#Configure logging to file for debug. Delete the file to disable.
def logon():
LOGGING_CONFIG=\
{
"version": 1,
"disable_existing_loggers": "true",
"formatters": {
"simple": {
"format": "%(asctime)s %(levelname)s %(filename)s %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S"
},
"console": {
"format": "%(levelname)s %(message)s"
}
},
"handlers": {
"file_handler": {
"level": "INFO",
"class": "logging.handlers.RotatingFileHandler",
"formatter": "simple",
"filename": logfile,
"backupCount": 1,
"maxBytes": 2048,
"mode": "a",
"encoding": "utf8"
},
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "console"
}
},
"loggers": {},
"root": {
"handlers": [
"file_handler",
"console"
],
"level": "DEBUG"
}
}
configFile=open(configLogfileName,'w')
configFile.write(json.dumps(LOGGING_CONFIG, indent=4))
configFile.close()
if len(argv) == 2:
robloxArg = argv[1]
if robloxArg.startswith("roblox-player:"):
robloxData=robloxArg
#Create the xdg-open .desktop file and install or uninstall.
def setDesktopFile(filetype):
desktopFile=os.path.join(moduledir, "robloxlinux-launcher.desktop")
if (filetype == "install"):
desktopData="[Desktop Entry]\nVersion=1.0\n" \
+ "Type=Application\nName=Roblox Player\nNoDisplay=true\n" \
+ "Comment=Roblox Game Launcher\n" \
+ "MimeType=x-scheme-handler/roblox-player;\nCategories=Game;\n" \
+ "Exec=/opt/game/Roblox-Linux-Launcher/runRoblox.py\n"
print("Installing " + desktopFile)
with open(desktopFile, 'w') as file:
file.write(desktopData)
os.system("xdg-desktop-menu install " + desktopFile)
os.system("xdg-mime default " \
+ "robloxlinux-launcher.desktop x-scheme-handler/roblox-player")
else:
web_browser_type = argv[1]
for web_browser in browser_list:
if web_browser.pgrep_pattern == web_browser_type:
browser = web_browser;
break;
if browser is None:
print("Invalid browser selected: " + web_browser_type)
launcher_help()
quit()
else:
browser = CHROME
#uninstall
if os.path.exists(desktopFile):
os.system("xdg-desktop-menu uninstall " + desktopFile)
os.remove(desktopFile)
else:
print("The desktop file is not installed.")
if robloxData is None:
if (not spawn.find_executable(browser.browser_exe)):
print("Executable does not exist: "+browser.browser_exe);
launcher_help()
quit()
browser = None
robloxData = None
home = os.getenv("HOME")
rll_version="1.0-alpha"
wineprefix = os.getenv("WINEPREFIX",f"{home}/.wine")
if os.path.isfile(wineprefix) == False:
logging.critical("WINE does not exist: " + wineprefix)
quit()
if os.path.isdir(wineprefix) == False:
logging.critical("WINE does not exist: " + wineprefix)
quit()
for i in range(len(versions_folder_entries)):
if os.path.isdir(f"{versions_folder}/{versions_folder_entries[i]}") ==
True:
if f"{versions_folder}/{versions_folder_entries[i]}" not in all_text:
print(f"New Version Found: {versions_folder_entries[i]}")
logging.info(f"New Version Found: {versions_folder_entries[i]}")
all_versions =
open(f"{home}/roblox-linux-launcher/versions.txt","a")
all_versions.write(f"{versions_folder}/{versions_folder_entries[i]}\n")
all_versions.close()
current_version =
open(f"{home}/roblox-linux-launcher/current_version.txt","w")
current_version.write(f"{versions_folder}/{versions_folder_entries[i]}")
current_version.close()
print(f"{versions_folder_entries[i]} is now the current version.")
logging.info(f"{versions_folder_entries[i]} is now the current
version.")
def openRobloxSite():
chromeCheck = os.system(f"pgrep {browser.pgrep_pattern}")
@@ -140,7 +208,7 @@ def openRobloxSite():
checkFunction.start()
os.system(browser.invocation)
checkFunction.join()
if len(argv) == 2:
robloxArg = argv[1]
if robloxArg.startswith("roblox-player:"):
#either a roblox game or our xdg-open test
robloxData=robloxArg
elif robloxArg == "install" or robloxArg == "uninstall":
#turn on xdg output
os.environ["XDG_UTILS_DEBUG_LEVEL"] = "2"
#Install mimetype handler config ie .desktop file
if robloxArg == "install":
setDesktopFile("install")
else:
setDesktopFile("uninstall")
os.environ["XDG_UTILS_DEBUG_LEVEL"] = "0"
quit()
elif robloxArg == "logon":
#setup logging output log file.
logon()
quit()
elif robloxArg == "test":
#test xdg-open operation for roblox url.
os.environ["XDG_UTILS_DEBUG_LEVEL"] = "2"
cmd = "xdg-open roblox-player:test"
logging.info("Run: " + cmd)
os.system(cmd)
logging.info("Test end. (previous message should say success.)")
os.environ["XDG_UTILS_DEBUG_LEVEL"] = "0"
quit()
else:
web_browser_type = argv[1]
for web_browser in browser_list:
if web_browser.pgrep_pattern == web_browser_type:
browser = web_browser;
break;
if browser is None:
print("Invalid browser selected: " + web_browser_type)
launcher_help()
quit()
else:
browser = CHROME