Created
January 9, 2025 11:54
-
-
Save ph20/79371387e7d86fa0d371246abd84a771 to your computer and use it in GitHub Desktop.
Code style
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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