Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. var CONFIG = {
  2. apikey : '',
  3. website : 'http://test.pl',
  4. port : 8090,
  5. express : {
  6. name : 'aasg',
  7. secret : 'secret_Vas'
  8. }
  9. };
  10. var STEAM = {
  11. sessions : "normal",
  12. steam : "normal",
  13. trades : "normal"
  14. };
  15. var mysqlInfo = {
  16. host : 'localhost',
  17. user : 'root',
  18. password : 'test',
  19. database : 'test',
  20. charset : 'utf8_general_ci'
  21. };
  22. var spam = [];
  23. var messages = [];
  24. var chat = true;
  25. var mysqlConnection;
  26. var online = 0;
  27. var requestsmade = 0;
  28.  
  29. var https = require("https");
  30. var speakeasy = require('speakeasy');
  31. var request = require('request');
  32. var bodyParser = require('body-parser');
  33. var io = require('socket.io').listen(CONFIG.port);
  34. var mysql = require('mysql');
  35. var Random = require("random-js");
  36. var random = new Random(Random.engines.mt19937().autoSeed());
  37. var express = require('express');
  38. var passport = require('passport');
  39. var util = require('util');
  40. var session = require('express-session');
  41. var SteamStrategy = require('passport-steam').Strategy;
  42. var fs = require('fs');
  43. var objectAssign = require('object-assign');
  44. var Security = require('./security.js');
  45. var security = new Security();
  46. var Network = require('./network.js');
  47. var network = new Network(io);
  48. var async = require('async');
  49. var crypto = require('crypto');
  50. //var csgoimapi = require('csgo-im-api');
  51. //var api = new csgoimapi('#');
  52.  
  53. var log4js = require('log4js');
  54. var dateFormat = require('dateformat');
  55. var now = new Date();
  56. var md5 = require('md5');
  57. date= dateFormat(now, "mmmm-d hxMM");
  58.  
  59. log4js.configure({
  60. appenders: [
  61. { type: 'console' },
  62. { type: 'file', filename: 'logs/site/site '+date+'.log' }
  63. ]
  64. });
  65. var logger = log4js.getLogger();
  66.  
  67. function generateToken(length){
  68. var symbols = ['1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
  69. var token = '';
  70. for(var i = 0; i < length; i++){
  71. token = token + symbols[random.integer(0, symbols.length-1)];
  72. }
  73. return token;
  74. }
  75.  
  76. function handleDisconnect() {
  77. mysqlConnection = mysql.createConnection(mysqlInfo);
  78.  
  79. mysqlConnection.connect(function(err) {
  80. if(err) {
  81. logger.error('MYSQL Connection Failed, Error: ' + err);
  82. setTimeout(handleDisconnect, 2000);
  83. } else {
  84. logger.info('MYSQL Connection Successful');
  85. }
  86. });
  87.  
  88. mysqlConnection.on('error', function(err) {
  89. logger.error('MYSQL Error (On Error): ' + err);
  90. if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET') {
  91. setTimeout(handleDisconnect, 2000);
  92. } else {
  93. throw err;
  94. }
  95. });
  96. }
  97.  
  98. handleDisconnect();
  99.  
  100. function removequots(str) {
  101. str=str.replace(/\\/g,'');
  102. str=str.replace(/\'/g,'');
  103. str=str.replace(/\"/g,'');
  104. str=str.replace(/\0/g,'');
  105. return str;
  106. }
  107.  
  108. function removescript(str){
  109. str = str.replace(/</g,'');
  110. str = str.replace(/>/g,'');
  111. return str;
  112. }
  113.  
  114. function convertid(steamid) {
  115. return steamid.substr(3) - 61197960265728;
  116. }
  117.  
  118. setInterval(function(){
  119. spam = [];
  120. },3000);
  121.  
  122. setInterval(function(){
  123. io.emit('online', online);
  124. online = 0;
  125. },3000);
  126.  
  127. passport.serializeUser(function(user, done) {
  128. done(null, user);
  129. });
  130.  
  131. passport.deserializeUser(function(obj, done) {
  132. done(null, obj);
  133. });
  134.  
  135. passport.use(new SteamStrategy({
  136. returnURL : CONFIG.website+'/auth/steam/return',
  137. realm : CONFIG.website,
  138. apiKey : CONFIG.apikey,
  139. profile : true
  140. }, function(identifier, profile, done) {
  141. profile.identifier = identifier;
  142. return done(null, profile);
  143. }
  144. ));
  145.  
  146. var app = express();
  147.  
  148. app.listen(3000);
  149.  
  150.  
  151. app.use(bodyParser.json());
  152. app.use(bodyParser.urlencoded({
  153. extended: true
  154. , limit: '20mb'
  155. }));
  156. app.set('views', __dirname + '/views');
  157. app.set('view engine', 'ejs');
  158.  
  159. app.use(session({ secret: CONFIG.express.secret, name: CONFIG.express.name, resave: true, saveUninitialized: true }));
  160.  
  161. app.use(passport.initialize());
  162. app.use(passport.session());
  163. app.use('/assets', express.static(__dirname + '/views/assets'));
  164.  
  165. app.get('/', function(req,res){
  166. res.send("home");
  167. });
  168.  
  169. app.get('/logout', function(req, res){
  170. if(req.isAuthenticated()){
  171. delete network.players[req.user._json.steamid];
  172. req.logout();
  173. res.redirect('/');
  174. } else {
  175. res.redirect('/');
  176. }
  177. });
  178.  
  179. app.get('/auth/steam', passport.authenticate('steam'), function(req, res) {
  180. //res.redirect('/');
  181. });
  182.  
  183. function use_orginalurl(req, res, next){
  184. req.url = req.originalUrl;
  185. next();
  186. }
  187.  
  188. app.get('/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/auth/steam' }), function(req, res) {
  189. logger.info(req.user._json.steamid + ' successfully authenticated');
  190. network.players[req.user._json.steamid] = { steamid : 0, authenticated : true, id : 0, user : 0, inventory : { items : {} } };
  191. logger.info('Successfully Authenticated = '+network.authenticated(req.user._json.steamid));
  192. network.players[req.user._json.steamid].user = req.user._json;
  193. mysqlConnection.query('SELECT * FROM users WHERE steamid = '+mysqlConnection.escape(req.user._json.steamid)+'', function(err, row, results){
  194. if(err) {
  195. if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
  196. handleDisconnect();
  197. }
  198. logger.error('MYSQL Error (User Authentication): ' + err);
  199. }
  200. if(row && row.length > 0){
  201. logger.info('Authenticated Existing User');
  202. mysqlConnection.query('UPDATE users SET name = \''+removescript(removequots(req.user._json.personaname))+'\', img = \''+req.user._json.avatarfull+'\' WHERE steamid ='+mysqlConnection.escape(req.user._json.steamid)+'', function(err, rows, fields) {
  203. if(err) {
  204. logger.error('MYSQL Error (Saving Existing User Data): ' + err);
  205. if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
  206. handleDisconnect();
  207. }
  208. } else {
  209. res.redirect('/');
  210. }
  211. });
  212. } else {
  213. logger.info('Authenticated New User');
  214. mysqlConnection.query('INSERT INTO users (`steamid`, `name`, `img`) VALUES ('+mysqlConnection.escape(req.user._json.steamid)+', \''+removescript(removequots(req.user._json.personaname))+'\', \''+req.user._json.avatarfull+'\')', function(err, rows, fields) {
  215. if(err) {
  216. logger.error('MYSQL Error (Saving New User Data): ' + err);
  217. if(err.code === 'PROTOCOL_CONNECTION_LOST' || err.code === 'ECONNRESET'){
  218. handleDisconnect();
  219. }
  220. } else {
  221. res.redirect('/');
  222. loadUsersTotal();
  223. }
  224. });
  225. }
  226. });
  227. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement