.BANCHO. Changed config.ini structure, better logs, add logs to output file

This commit is contained in:
Nyo
2016-06-04 12:44:54 +02:00
parent f6be15fa59
commit bd8c810f45
31 changed files with 223 additions and 201 deletions

View File

@@ -48,19 +48,20 @@ class config:
self.config.get("db","database")
self.config.get("db","workers")
self.config.get("server","threads")
self.config.get("server","port")
self.config.get("server","localizeusers")
self.config.get("server","outputpackets")
self.config.get("server","outputrequesttime")
self.config.get("server","timeouttime")
self.config.get("server","timeoutlooptime")
self.config.get("server","threads")
self.config.get("server","gzip")
self.config.get("server","gziplevel")
self.config.get("server","localize")
self.config.get("server","cikey")
self.config.get("debug","enable")
self.config.get("debug","packets")
self.config.get("debug","time")
self.config.get("discord","enable")
self.config.get("discord","boturl")
self.config.get("discord","devgroup")
self.config.get("ci","key")
return True
except:
return False
@@ -82,19 +83,20 @@ class config:
self.config.set("db", "workers", "4")
self.config.add_section("server")
self.config.set("server", "threads", "16")
self.config.set("server", "port", "5001")
self.config.set("server", "localizeusers", "1")
self.config.set("server", "outputpackets", "0")
self.config.set("server", "outputrequesttime", "0")
self.config.set("server", "timeoutlooptime", "100")
self.config.set("server", "timeouttime", "100")
self.config.set("server", "threads", "16")
self.config.set("server", "gzip", "1")
self.config.set("server", "gziplevel", "6")
self.config.set("server", "localize", "1")
self.config.set("server", "cikey", "changeme")
self.config.add_section("ci")
self.config.set("ci", "key", "changeme")
self.config.add_section("debug")
self.config.set("debug", "enable", "0")
self.config.set("debug", "packets", "0")
self.config.set("debug", "time", "0")
self.config.add_section("discord")
self.config.set("discord", "enable", "False")
self.config.set("discord", "enable", "0")
self.config.set("discord", "boturl", "")
self.config.set("discord", "devgroup", "")

View File

@@ -127,10 +127,10 @@ class db:
if self.disconnected == True:
# If we were disconnected, set disconnected to false and print message
self.disconnected = False
consoleHelper.printColored("> Reconnected to MySQL server!", bcolors.GREEN)
log.error("> Reconnected to MySQL server!", bcolors.GREEN)
except:
# Can't ping MySQL server. Show error and call loop in 5 seconds
consoleHelper.printColored("[!] CRITICAL!! MySQL connection died! Make sure your MySQL server is running! Checking again in 5 seconds...", bcolors.RED)
log.error("[!] CRITICAL!! MySQL connection died! Make sure your MySQL server is running! Checking again in 5 seconds...", bcolors.RED)
self.disconnected = True
time = 5

View File

@@ -1,8 +1,7 @@
import urllib.request
import json
from helpers import consoleHelper
from constants import bcolors
from helpers import logHelper as log
# API URL
URL = "http://ip.zxq.co/"
@@ -16,15 +15,12 @@ def getCountry(ip):
return -- Country code (2 letters)
"""
# Default value, sent if API is memeing
country = "XX"
try:
# Try to get country from Pikolo Aul's Go-Sanic ip API
result = json.loads(urllib.request.urlopen("{}/{}".format(URL, ip), timeout=3).read().decode())["country"]
return result.upper()
except:
consoleHelper.printColored("[!] Error in get country", bcolors.RED)
log.error("Error in get country")
return "XX"
@@ -36,13 +32,10 @@ def getLocation(ip):
return -- [latitude, longitude]
"""
# Default value, sent if API is memeing
data = [0,0]
try:
# Try to get position from Pikolo Aul's Go-Sanic ip API
result = json.loads(urllib.request.urlopen("{}/{}".format(URL, ip), timeout=3).read().decode())["loc"].split(",")
return [float(result[0]), float(result[1])]
except:
consoleHelper.printColored("[!] Error in get position", bcolors.RED)
log.error("Error in get position")
return [0,0]

View File

@@ -1,8 +1,11 @@
from constants import bcolors
from helpers import discordBotHelper
from helpers import generalFunctions
from helpers.systemHelper import runningUnderUnix
from objects import glob
def logMessage(message, alertType = INFO, messageColor = bcolors.ENDC, discord = False, alertDev = False, of = None):
ENDL = "\n" if runningUnderUnix() else "\r\n"
def logMessage(message, alertType = "INFO", messageColor = bcolors.ENDC, discord = False, alertDev = False, of = None, stdout = True):
"""
Logs a message to stdout/discord/file
@@ -12,15 +15,17 @@ def logMessage(message, alertType = INFO, messageColor = bcolors.ENDC, discord =
discord -- if True, the message will be logged on #bunker channel on discord. Default: False
alertDev -- if True, devs will receive an hl on discord. Default: False
of -- if not None but a string, log the message to that file (inside .data folder). Eg: "warnings.txt" Default: None (don't log to file)
stdout -- if True, print the message to stdout. Default: True
"""
# Get type color from alertType
if alertType == "INFO":
typeColor = bcolors.GREEN
elif alertType == "WARNING":
typeColor = bcolors.YELLOW
elif typeColor == "ERROR":
elif alertType == "ERROR":
typeColor = bcolors.RED
elif alertType == "CHAT":
typeColor = bcolors.BLUE
else:
typeColor = bcolors.ENDC
@@ -37,8 +42,9 @@ def logMessage(message, alertType = INFO, messageColor = bcolors.ENDC, discord =
messageColor=messageColor,
endc=bcolors.ENDC)
# Always log to console
print(finalMessageConsole)
# Log to console
if stdout == True:
print(finalMessageConsole)
# Log to discord if needed
if discord == True:
@@ -48,7 +54,7 @@ def logMessage(message, alertType = INFO, messageColor = bcolors.ENDC, discord =
if of != None:
# TODO: Lock
with open(".data/{}".format(of), "a") as f:
f.write(finalMessage)
f.write(finalMessage+ENDL)
def warning(message, discord = False, alertDev = False):
"""
@@ -69,3 +75,38 @@ def error(message, discord = False, alertDev = True):
alertDev -- if True, send al hl to devs on discord. Optional. Default = False.
"""
logMessage(message, "ERROR", bcolors.RED, discord, alertDev, "errors.txt")
def info(message, discord = False, alertDev = False):
"""
Log an error to stdout (and info.log)
message -- info message
discord -- if True, send error to #bunker. Optional. Default = False.
alertDev -- if True, send al hl to devs on discord. Optional. Default = False.
"""
logMessage(message, "INFO", bcolors.ENDC, discord, alertDev, "info.txt")
def debug(message):
"""
Log a debug message to stdout and debug.log if server is running in debug mode
message -- debug message
"""
if glob.debug == True:
logMessage(message, "DEBUG", bcolors.PINK, of="debug.txt")
def chat(message):
"""
Log public messages to stdout and chatlog_public.txt
message -- chat message
"""
logMessage(message, "CHAT", bcolors.BLUE, of="chatlog_public.txt")
def pm(message):
"""
Log private messages to stdout and chatlog_private.txt
message -- chat message
"""
logMessage(message, "CHAT", bcolors.BLUE, of="chatlog_private.txt")

View File

@@ -3,11 +3,9 @@ from constants import serverPackets
import psutil
import os
import sys
from helpers import consoleHelper
from constants import bcolors
import threading
import signal
from helpers import logHelper as log
def runningUnderUnix():
"""
@@ -29,8 +27,8 @@ def scheduleShutdown(sendRestartTime, restart, message = ""):
"""
# Console output
consoleHelper.printColored("[!] Pep.py will {} in {} seconds!".format("restart" if restart else "shutdown", sendRestartTime+20), bcolors.PINK)
consoleHelper.printColored("[!] Sending server restart packets in {} seconds...".format(sendRestartTime), bcolors.PINK)
log.info("Pep.py will {} in {} seconds!".format("restart" if restart else "shutdown", sendRestartTime+20))
log.info("Sending server restart packets in {} seconds...".format(sendRestartTime))
# Send notification if set
if message != "":
@@ -52,13 +50,13 @@ def scheduleShutdown(sendRestartTime, restart, message = ""):
def restartServer():
"""Restart pep.py script"""
print("> Restarting pep.py...")
log.info("Restarting pep.py...")
os.execv(sys.executable, [sys.executable] + sys.argv)
def shutdownServer():
"""Shutdown pep.py"""
print("> Shutting down pep.py...")
log.info("> Shutting down pep.py...")
sig = signal.SIGKILL if runningUnderUnix() else signal.CTRL_C_EVENT
os.kill(os.getpid(), sig)