Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- class NoDatabaseFile(BaseException):
- pass
- class system:
- @staticmethod
- def __EXIT__(stdout):
- print(" | %s." % (stdout))
- sys.exit()
- @staticmethod # Decorator for __DEBUG__
- def __DEBUG__(is_debug, stdout, *args): # Debugging
- if is_debug: sys.stderr.write(" | %s -- %s\n" % (stdout, args))
- else: pass # Unnecessary line, but there because why not
- def __init__(self, mode, username, password, is_debug=True):
- ":__init__: initializes values and login attributes for module"
- self.__DEBUG__(is_debug, "Started initialization")
- self.mode = mode
- self.is_debug = is_debug # Debug over several functions/methods
- self.username = username # Set global class variables
- self.password = password # Stored as plain-text sadly.
- self.database = os.getcwd() + "\\database.dbs" # Presuming file exists
- self.dbs_exists = True if os.path.exists(self.database) else False # Ternary operators, checks if database file exists, if not set to False
- self.users =\
- {
- }
- self._ = None # Temporary variable for I/O
- self.user, self.passwd = False, False
- self.__DEBUG__(self.is_debug, "Ended initialization", is_debug, self.username, self.password, self.dbs_exists)
- def login(self):
- # PRESUMING DATABASE FORMAT OF:
- # username:password\r\n
- # Pretty simple, no need for complications
- if mode.lower() != "l" or mode.lower() != "login":
- self.__EXIT__(
- if not self.dbs_exists: # If database file doesn't exist
- raise NoDatabaseFile("Database file, %s - not existent, please create it and rerun." % (self.database))
- elif self.dbs_exists: # If file exists
- self.__DEBUG__(self.is_debug, "Opening database-file", self.database)
- with open(self.database, "r") as read_dbs: # Open the file in read-only mode.
- self._ = read_dbs.readlines()
- for line in self._:
- self.users.update({line.split(":")[0]: line.split(":")[1].replace("\n", "")})
- for user in self.users.keys():
- if self.username == user and user == self.username:
- self.__DEBUG__(self.is_debug, "Found user", user, self.username)
- self.user = True
- break
- else:
- self.user = False # Redundant
- pass
- self.__EXIT__("User not found") if not self.user else None
- if self.password == self.users[self.username] and self.users[self.username] == self.password:
- self.passwd = True
- self.__DEBUG__(self.is_debug, "Logged in", self.username, self.password)
- self.__DEBUG__(self.is_debug, "Finished reading file", self.users)
- def register(self):
- pass
- #if __name__ == "__main__":
- # raise Exception("You cannot run this directly as a script, please import it.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement