Skip to content

Instantly share code, notes, and snippets.

@ph20
Created January 9, 2025 11:54
Show Gist options
  • Save ph20/79371387e7d86fa0d371246abd84a771 to your computer and use it in GitHub Desktop.
Save ph20/79371387e7d86fa0d371246abd84a771 to your computer and use it in GitHub Desktop.
Code style
import winreg
import datetime
from zvapp.logic.GENERAL import GEN
class Login:
# def login():
# login = {}
# user_servers = Login.get_registry_servers("user_servers", "Software\\Ardom\\ZVPYTHON\\Servers")
# login['winreg'] = user_servers
# login['serversList'] = list(Login.JSON_try(user_servers,'user_servers').keys())
# login['server'] = Login.JSON_try(user_servers,'server_default')
# login['name'] = Login.JSON_try(user_servers,'user_servers')
# login['password'] = Login.JSON_try(user_servers,'server_passwords')
# return login
def JSON_try(self, parameter):
JSON = self
try:
JSON_out = JSON[parameter]
except:
JSON_out = {}
return JSON_out
def get_registry_servers(self, loc):
reg_type = self
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, loc)
try:
login = winreg.QueryValueEx(key, reg_type)
except:
JSON = {}
JSON[reg_type] = {}
JSON_string = GEN.JSON2string(JSON)
winreg.SetValueEx(key, reg_type, 0, winreg.REG_SZ, JSON_string)
login = winreg.QueryValueEx(key, reg_type)
JSON = GEN.string2JSON(login[0])
return JSON
def set_registry_servers_full(self, loc, info):
reg_type = self
JSON = Login.get_registry_servers(reg_type, loc)
server = info["host"]
name = info["user"]
password = info["password"]
server_default = info["server_default"]
server_passwords = info["server_passwords"]
if server_passwords == "true":
password = ""
# default if it the first server in user #
if JSON["user_servers"] == {}:
info["server_default"] = "true"
if 'user_servers' not in JSON:
JSON['user_servers'] = {}
JSON['user_servers'][server] = {}
JSON['user_servers'][server]['name'] = name
JSON['user_servers'][server]['password'] = password
JSON['server_passwords'] = server_passwords
if info["server_default"] == "true":
JSON['server_default'] = server
Login.set_registry_servers(reg_type, loc, JSON)
def set_registry_servers(self, loc, JSON):
reg_type = self
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, loc)
JSON_string = GEN.JSON2string(JSON)
winreg.SetValueEx(key, reg_type, 0, winreg.REG_SZ, JSON_string)
def create_registry_string(self):
loc = self
try:
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, loc)
now = datetime.datetime.now()
now_str = now.strftime("%m/%d/%Y, %H:%M:%S %f")
Login.set_registry_string("alive_datetime", loc , now_str)
winreg.CloseKey(key)
except:
print("ERROR create_registry_string")
def set_registry_string(self, loc, string):
reg_type = self
try:
key = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, loc, 0, winreg.KEY_WRITE)
except Exception as e:
if "[WinError 2]" in str(e) and string == "close_threading":
print("cant set return 500!! " + string)
return 500
elif string == "alive_datetime":
pass
print("**************alive_datetime***************")
else:
print("ERROR set_registry_string " + string)
print(str(e))
print("********************************************")
# return 401
try:
winreg.SetValueEx(key, reg_type, 0, winreg.REG_SZ, string)
winreg.CloseKey(key)
return 200
except Exception as e:
print('************************ set_registry_string ERROR:' + reg_type + " " + loc + " " + string + " ")
print('set_registry_string ERROR')
print(str(e))
try:
print ("KEY:" + str(key))
except:
print("Somethong with the key")
return 402
def get_registry_string(self, loc):
reg_type = self
try:
key = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, loc)
except Exception as e:
res = 401
print("ERROR get_registry_string in key " + reg_type + " " + str(e) + " " + loc)
if "[WinError 2]" in str(e):
print("create new registry since the old one disapear and close the session")
# Login.create_registry_string(loc)
res = Login.set_registry_string("telnet_text_in", loc , "close_threading")
print(res)
return 500
try:
string = winreg.QueryValueEx(key, reg_type)
winreg.CloseKey(key)
res = string[0]
except Exception as e:
res = 401
if "[WinError 2]" in str(e):
print("create new registry since the old one disapear and close the session2")
print(loc)
# Login.create_registry_string(loc)
Login.set_registry_string("telnet_text_in", loc , "close_threading")
return 500
return res
def delete_registry_string(self, session):
loc = self
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, loc)
winreg.DeleteKey(key, session)
print("DELETE OK " + session)
res = ''
except:
print("DELETE ERROR " + session)
res = 'Error in delete_registry_string'
return res
def get_registry_list(self, loc):
reg_type = self
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, loc)
string = winreg.QueryInfoKey(key)
single_session_list = []
for i in range(string[0]):
single_session_list.append(winreg.EnumKey(key, i))
res = single_session_list
except:
print('get_registry_list ERROR')
res = ''
return res
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment