Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Airtable = require('airtable');
- var Base = new Airtable({apiKey: 'keyrYtsUCwQBo48Pz'}).base('appwbA5iy1LHLUaKr');
- var Express = require('express');
- var Cors = require('cors');
- var path = require('path');
- var bodyParser = require('body-parser');
- var socket = require('socket.io');
- var App = Express();
- var rblxJs = require('rblx-js');
- var rbx = new rblxJs();
- var server = App.listen(8000);
- //Parsers
- App.use(bodyParser.urlencoded({extended: false}));
- App.use(bodyParser.json());
- //Handle Database
- let GetRecords = function() {
- return new Promise(function(Resolve, Reject){
- const RecordsList = [];
- var index = 0
- Base('Database').select({
- maxRecords: 99999,
- view: "Grid view"
- }).eachPage(function page(records, fetchNextPage) {
- records.forEach(function(record) {
- var FieldsTable = [];
- console.log(record);
- FieldsTable[Object.entries(record.fields)[0][0]] = Object.entries(record.fields)[0][1];
- FieldsTable[Object.entries(record.fields)[1][0]] = Object.entries(record.fields)[1][1];
- FieldsTable[Object.entries(record.fields)[2][0]] = Object.entries(record.fields)[2][1];
- FieldsTable[Object.entries(record.fields)[3][0]] = Object.entries(record.fields)[3][1];
- FieldsTable[Object.entries(record.fields)[4][0]] = Object.entries(record.fields)[4][1];
- FieldsTable[Object.entries(record.fields)[5][0]] = Object.entries(record.fields)[5][1];
- FieldsTable[Object.entries(record.fields)[6][0]] = Object.entries(record.fields)[6][1];
- RecordsList[index] = [FieldsTable, record.getId()];
- index++;
- });
- fetchNextPage();
- });
- setTimeout(function() {Resolve(RecordsList)}, 2500);
- });
- };
- let GetPlayerRecord = function(IdArray){
- return new Promise(function(Resolve, Reject) {
- let Id
- let ResolveData = false
- if (IdArray[1] == null){
- rbx.getUserByUsername(IdArray[0]).then(user=>{
- Id = user.userId + 0;
- });
- } else {
- Id = IdArray[1] + 0;
- };
- setTimeout(function() {
- GetRecords().then(function(RecordsList){
- for (var i in RecordsList) {
- if (RecordsList[i][0]['UserId'] == Id) {
- ResolveData = RecordsList[i];
- break;
- };
- };
- });
- }, 1500);
- setTimeout(function() {
- Resolve(ResolveData);
- }, 4750);
- });
- };
- function UpdateRecord(IdArray, Data){
- GetPlayerRecord(IdArray).then(function(PlayerRecord){
- let Id
- if (IdArray[1] == null){
- rbx.getUserByUsername(IdArray[0]).then(user=>{
- Id = user.userId;
- });
- } else {
- Id = IdArray[1];
- };
- setTimeout(function() {
- if (PlayerRecord == false) {
- Base('Database').create({
- "UserId": Id,
- "Time": Data['Time'],
- "Reason": Data['Reason'],
- "Status": Data['Status'],
- "Offenses": Data['Offenses'],
- "Whitelisted": Data['Whitelisted'],
- "Blacklisted": Data['Blacklisted']
- });
- } else {
- Base('Database').update(PlayerRecord[1], {
- "UserId": Id,
- "Time": Data['Time'],
- "Reason": Data['Reason'],
- "Status": Data['Status'],
- "Offenses": Data['Offenses'],
- "Whitelisted": Data['Whitelisted'],
- "Blacklisted": Data['Blacklisted']
- });
- };
- }, 1500);
- });
- };
- function Ban(Request, Response) {
- var Data = [];
- var JsonData = Request.body;
- console.log(JsonData);
- GetPlayerRecord([JsonData.Username, null]).then(function(PlayerRecord){
- if (JsonData.Time == "Perma") {
- Data['Time'] = 0.0;
- } else {
- Data['Time'] = (JsonData.Time * 86400) + (new Date().getTime()/1000);
- };
- Data['Reason'] = JsonData.Reason;
- Data['Status'] = "Banned";
- if (PlayerRecord != false) {
- Data['Offenses'] = PlayerRecord[0]['Offenses'] + 1;
- Data['Whitelisted'] = PlayerRecord[0]['Whitelisted'];
- Data['Blacklisted'] = PlayerRecord[0]['Blacklisted'];
- } else {
- Data['Offenses'] = 1;
- Data['Whitelisted'] = "False";
- Data['Blacklisted'] = "False";
- };
- setTimeout(function() {
- UpdateRecord([JsonData.Username, null], Data);
- }, 2000);
- });
- };
- function Unban(Username, Reason) {
- var Data = [];
- GetPlayerRecord([Username, null]).then(function(PlayerRecord){
- Data['Reason'] = Reason;
- Data['Status'] = "Unbanned";
- Data['Time'] = 1.0
- if (PlayerRecord != false) {
- Data['Offenses'] = PlayerRecord[0][4];
- Data['Whitelisted'] = PlayerRecord[0]['Whitelisted'];
- Data['Blacklisted'] = PlayerRecord[0]['Blacklisted'];
- } else {
- Data['Offenses'] = 0;
- Data['Whitelisted'] = "False";
- Data['Blacklisted'] = "False";
- };
- setTimeout(function() {
- UpdateRecord(Username, Data);
- }, 2000);
- });
- };
- function Whitelist(Username, Reason) {
- var Data = [];
- GetPlayerRecord([Username, null]).then(function(PlayerRecord){
- Data['Reason'] = Reason;
- Data['Status'] = "Unbanned";
- Data['Whitelisted'] = "True";
- Data['Blacklisted'] = "False";
- if (PlayerRecord != false) {
- Data['Offenses'] = PlayerRecord[0]['Offenses'];
- } else {
- Data['Offenses'] = 0;
- Data['Whitelisted'] = "True";
- Data['Blacklisted'] = "False";
- };
- setTimeout(function() {
- UpdateRecord(Username, Data);
- }, 2000);
- });
- };
- function Blacklist(Username, Reason) {
- var Data = [];
- GetPlayerRecord([Username, null]).then(function(PlayerRecord){
- Data['Reason'] = Reason;
- Data['Status'] = "Banned";
- Data['Whitelisted'] = "False";
- Data['Blacklisted'] = "True";
- if (PlayerRecord != false) {
- Data['Offenses'] = PlayerRecord[0]['Offenses'];
- } else {
- Data['Offenses'] = 0;
- Data['Whitelisted'] = "False";
- Data['Blacklisted'] = "True";
- };
- setTimeout(function() {
- UpdateRecord(Username, Data);
- }, 2000);
- });
- };
- let GetAdmins = function() {
- return new Promise(function(Resolve, Reject){
- let Admins = [];
- var index = 0
- Base('Admins').select({
- maxRecords: 99999,
- view: "Grid view"
- }).eachPage(function page(records, fetchNextPage) {
- records.forEach(function(record) {
- var FieldsTable = [];
- FieldsTable[Object.entries(record.fields)[0][0]] = Object.entries(record.fields)[0][1];
- FieldsTable[Object.entries(record.fields)[1][0]] = Object.entries(record.fields)[1][1];
- Admins[index] = FieldsTable;
- index++;
- });
- fetchNextPage();
- });
- setTimeout(function() {Resolve(Admins)}, 2500);
- });
- };
- function UnbanUsers() {
- var Seconds = new Date().getTime()/1000
- var Data = [];
- GetRecords().then(function(RecordsList){
- for (var i in RecordsList) {
- if (RecordsList[i][0][0] <= Seconds && (RecordsList[i][0][0] != 1.0 || RecordsList[i][0][0] != 0.0)) {
- Data['Reason'] = Reason;
- Data['Status'] = "Unbanned";
- Data['Time'] = 1.0;
- Data['Offenses'] = RecordsList[i][0][4];
- Data['Whitelisted'] = RecordsList[i][0][5];
- Data['Blacklisted'] = RecordsList[i][0][6];
- UpdateRecord([null, RecordsList[i][0][1]], Data)
- };
- };
- });
- };
- setInterval(UnbanUsers, 60000);
- //Handle Requests
- App.get('/', function(Request, Response) {
- Response.sendFile('Login.html',{root: path.join(__dirname, './Website')});
- });
- App.post('/', function(Request, Response) {
- var IsAdmin = false
- var Data = Request.body;
- GetAdmins().then(function(AdminList){
- for (var i in AdminList) {
- if (AdminList[i]['Username'] == Data.Username) {
- if (AdminList[i]['Password'] == Data.Password) {
- IsAdmin = true;
- };
- };
- };
- setTimeout(function() {
- if (IsAdmin == true) {
- Response.sendFile('Main.html',{root: path.join(__dirname, './Website')});
- } else {
- Response.sendFile('Login.html',{root: path.join(__dirname, './Website')});
- };
- }, 2500);
- });
- });
- App.post('/ban', Ban)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement