.BANCHO. Add api handlers
This commit is contained in:
35
handlers/apiIsOnlineHandler.py
Normal file
35
handlers/apiIsOnlineHandler.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from helpers import requestHelper
|
||||
from constants import exceptions
|
||||
import json
|
||||
from objects import glob
|
||||
|
||||
class handler(requestHelper.asyncRequestHandler):
|
||||
def asyncGet(self):
|
||||
statusCode = 400
|
||||
data = {"message": "unknown error"}
|
||||
try:
|
||||
# Check arguments
|
||||
if requestHelper.checkArguments(self.request.arguments, ["u"]) == False:
|
||||
raise exceptions.invalidArgumentsException()
|
||||
|
||||
# Get online staus
|
||||
username = self.get_argument("u")
|
||||
if username == None:
|
||||
data["result"] = False
|
||||
else:
|
||||
data["result"] = True if glob.tokens.getTokenFromUsername(username) != None else False
|
||||
|
||||
# Status code and message
|
||||
statusCode = 200
|
||||
data["message"] = "ok"
|
||||
except exceptions.invalidArgumentsException:
|
||||
statusCode = 400
|
||||
data["message"] = "missing required arguments"
|
||||
finally:
|
||||
# Add status code to data
|
||||
data["status"] = statusCode
|
||||
|
||||
# Send response
|
||||
self.clear()
|
||||
self.set_status(statusCode)
|
||||
self.finish(json.dumps(data))
|
23
handlers/apiOnlineUsersHandler.py
Normal file
23
handlers/apiOnlineUsersHandler.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from helpers import requestHelper
|
||||
import json
|
||||
from objects import glob
|
||||
|
||||
class handler(requestHelper.asyncRequestHandler):
|
||||
def asyncGet(self):
|
||||
statusCode = 400
|
||||
data = {"message": "unknown error"}
|
||||
try:
|
||||
# Get online users count
|
||||
data["result"] = len(glob.tokens.tokens)
|
||||
|
||||
# Status code and message
|
||||
statusCode = 200
|
||||
data["message"] = "ok"
|
||||
finally:
|
||||
# Add status code to data
|
||||
data["status"] = statusCode
|
||||
|
||||
# Send response
|
||||
self.clear()
|
||||
self.set_status(statusCode)
|
||||
self.finish(json.dumps(data))
|
23
handlers/apiServerStatusHandler.py
Normal file
23
handlers/apiServerStatusHandler.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from helpers import requestHelper
|
||||
import json
|
||||
from objects import glob
|
||||
|
||||
class handler(requestHelper.asyncRequestHandler):
|
||||
def asyncGet(self):
|
||||
statusCode = 400
|
||||
data = {"message": "unknown error"}
|
||||
try:
|
||||
# Get online users count
|
||||
data["result"] = -1 if glob.restarting == True else 1
|
||||
|
||||
# Status code and message
|
||||
statusCode = 200
|
||||
data["message"] = "ok"
|
||||
finally:
|
||||
# Add status code to data
|
||||
data["status"] = statusCode
|
||||
|
||||
# Send response
|
||||
self.clear()
|
||||
self.set_status(statusCode)
|
||||
self.finish(json.dumps(data))
|
39
handlers/ciTriggerHandler.py
Normal file
39
handlers/ciTriggerHandler.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from helpers import requestHelper
|
||||
from constants import exceptions
|
||||
import json
|
||||
from objects import glob
|
||||
from helpers import consoleHelper
|
||||
from constants import bcolors
|
||||
from helpers import systemHelper
|
||||
|
||||
class handler(requestHelper.asyncRequestHandler):
|
||||
def asyncGet(self):
|
||||
statusCode = 400
|
||||
data = {"message": "unknown error"}
|
||||
try:
|
||||
# Check arguments
|
||||
if requestHelper.checkArguments(self.request.arguments, ["k"]) == False:
|
||||
raise exceptions.invalidArgumentsException()
|
||||
|
||||
# Check ci key
|
||||
key = self.get_argument("k")
|
||||
if key is None or key != glob.conf.config["ci"]["key"]:
|
||||
raise exceptions.invalidArgumentsException()
|
||||
|
||||
consoleHelper.printColored("[!] Ci event triggered!!", bcolors.PINK)
|
||||
systemHelper.scheduleShutdown(5, False, "A new Bancho update is available and the server will be restarted in 5 seconds. Thank you for your patience.")
|
||||
|
||||
# Status code and message
|
||||
statusCode = 200
|
||||
data["message"] = "ok"
|
||||
except exceptions.invalidArgumentsException:
|
||||
statusCode = 400
|
||||
data["message"] = "invalid ci key"
|
||||
finally:
|
||||
# Add status code to data
|
||||
data["status"] = statusCode
|
||||
|
||||
# Send response
|
||||
self.clear()
|
||||
self.set_status(statusCode)
|
||||
self.finish(json.dumps(data))
|
Reference in New Issue
Block a user