def logMessage(message, alertType = "INFO", messageColor = bcolors.ENDC, discord = None, alertDev = False, of = None, stdout = True): """ Log a message :param message: message to log :param alertType: alert type string. Can be INFO, WARNING, ERROR or DEBUG. Default: INFO :param messageColor: message console ANSI color. Default: no color :param discord: Discord channel acronym for Schiavo. If None, don't log to Discord. Default: None :param alertDev: if True, developers will be highlighted on Discord. Obviously works only if the message will be logged to Discord. Default: False :param of: Output file name (inside .data folder). If None, don't log to file. Default: None :param stdout: If True, log to stdout (print). Default: True :return: """ # Get type color from alertType if alertType == "INFO": typeColor = bcolors.GREEN elif alertType == "WARNING": typeColor = bcolors.YELLOW elif alertType == "ERROR": typeColor = bcolors.RED elif alertType == "CHAT": typeColor = bcolors.BLUE elif alertType == "DEBUG": typeColor = bcolors.PINK else: typeColor = bcolors.ENDC # Message without colors finalMessage = "[{time}] {type} - {message}".format(time=generalUtils.getTimestamp(), type=alertType, message=message) # Message with colors finalMessageConsole = "{typeColor}[{time}] {type}{endc} - {messageColor}{message}{endc}".format( time=generalUtils.getTimestamp(), type=alertType, message=message, typeColor=typeColor, messageColor=messageColor, endc=bcolors.ENDC) # Log to console if stdout: print(finalMessageConsole) # Log to discord if needed if discord is not None: glob.redis.publish("hax:warrning", json.dumps({ "message":"["+discord+"] "+message })) # Log to file if needed if of is not None: glob.fileBuffers.write(".data/"+of, finalMessage+ENDL)
def appendNotes(userID, notes, addNl=True, trackDate=True): """ Append `notes` to `userID`'s "notes for CM" :param userID: user id :param notes: text to append :param addNl: if True, prepend \n to notes. Default: True. :param trackDate: if True, prepend date and hour to the note. Default: True. :return: """ if trackDate: notes = "[{}] {}".format(generalUtils.getTimestamp(), notes) if addNl: notes = "\n{}".format(notes) glob.db.execute("UPDATE users SET notes=CONCAT(COALESCE(notes, ''),%s) WHERE id = %s LIMIT 1", [notes, userID])
def logMessage(message, alertType="INFO", messageColor=bcolors.ENDC, discord=None, of=None, stdout=True): """ Log a message :param message: message to log :param alertType: alert type string. Can be INFO, WARNING, ERROR or DEBUG. Default: INFO :param messageColor: message console ANSI color. Default: no color :param discord: Discord channel acronym for Schiavo. If None, don't log to Discord. Default: None :param of: Output file name (inside .data folder). If None, don't log to file. Default: None :param stdout: If True, log to stdout (print). Default: True :return: """ # Get type color from alertType if alertType == "INFO": typeColor = bcolors.CYAN elif alertType == "WARNING": typeColor = bcolors.YELLOW elif alertType == "ERROR": typeColor = bcolors.RED elif alertType == "CHAT": typeColor = bcolors.BLUE elif alertType == "DEBUG": typeColor = bcolors.PINK elif alertType == "CMYUI": typeColor = bcolors.PINK else: typeColor = bcolors.ENDC # Message without colors finalMessage = "[{time}] {type} - {message}".format( time=generalUtils.getTimestamp(), type=alertType, message=message) # Message with colors finalMessageConsole = "{typeColor}[{time}] {type}{endc} - {messageColor}{message}{endc}".format( time=generalUtils.getTimestamp(), type=alertType, message=message, typeColor=typeColor, messageColor=messageColor, endc=bcolors.ENDC) # Log to console if stdout: print(finalMessageConsole) sys.stdout.flush() # Log to discord if needed if discord is not None: if discord == "bunker": glob.schiavo.sendConfidential(message) elif discord == "cm": glob.schiavo.sendCM(message) elif discord == "staff": glob.schiavo.sendStaff(message) elif discord == "general": glob.schiavo.sendGeneral(message) # Log to file if needed if of is not None: glob.fileBuffers.write(".data/" + of, finalMessage + ENDL)
def logMessage(message, alertType = "INFO", messageColor = bcolors.ENDC, discord = None, alertDev = False, of = None, stdout = True): """ Log a message :param message: message to log :param alertType: alert type string. Can be INFO, WARNING, ERROR or DEBUG. Default: INFO :param messageColor: message console ANSI color. Default: no color :param discord: Discord channel acronym for Schiavo. If None, don't log to Discord. Default: None :param alertDev: if True, developers will be highlighted on Discord. Obviously works only if the message will be logged to Discord. Default: False :param of: Output file name (inside .data folder). If None, don't log to file. Default: None :param stdout: If True, log to stdout (print). Default: True :return: """ # Get type color from alertType if alertType == "INFO": typeColor = bcolors.GREEN elif alertType == "WARNING": typeColor = bcolors.YELLOW elif alertType == "ERROR": typeColor = bcolors.RED elif alertType == "CHAT": typeColor = bcolors.BLUE elif alertType == "DEBUG": typeColor = bcolors.PINK else: typeColor = bcolors.ENDC # Message without colors finalMessage = "[{time}] {type} - {message}".format(time=generalUtils.getTimestamp(), type=alertType, message=message) # Message with colors finalMessageConsole = "{typeColor}[{time}] {type}{endc} - {messageColor}{message}{endc}".format( time=generalUtils.getTimestamp(), type=alertType, message=message, typeColor=typeColor, messageColor=messageColor, endc=bcolors.ENDC) with open('logs/' + f'{glob.starttime.year}-{glob.starttime.month}-{glob.starttime.day}-{glob.starttime.hour}-{glob.starttime.minute}-{glob.starttime.second}', 'a') as file: file.write(finalMessage + '\n') # Log to console if stdout: print(finalMessageConsole) sys.stdout.flush() # Log to discord if needed if discord is not None: if discord == "bunker": glob.schiavo.sendConfidential(message, alertDev) elif discord == "cm": glob.schiavo.sendCM(message) elif discord == "staff": glob.schiavo.sendStaff(message) elif discord == "general": glob.schiavo.sendGeneral(message) # Log to file if needed if of is not None: glob.fileBuffers.write(".data/"+of, finalMessage+ENDL)