Add to git

This commit is contained in:
MrARM
2018-10-20 19:44:13 -05:00
commit 6f818c3c22
13 changed files with 14147 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
node_modules/
accounts.json

12
.idea/TinaGTG.iml generated Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/TinaGTG.iml" filepath="$PROJECT_DIR$/.idea/TinaGTG.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

377
.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,377 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="5d8be6cd-8630-4f2d-9919-fd8005be8d84" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
<ignored path="$PROJECT_DIR$/tmp/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FUSProjectUsageTrigger">
<session id="-1524044619">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.open.time.1" value="1" />
<entry key="project.opened" value="1" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="bat" value="1" />
<entry key="gitignore" value="1" />
<entry key="js" value="3" />
<entry key="json" value="5" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="JSON" value="4" />
<entry key="JavaScript" value="3" />
<entry key="PLAIN_TEXT" value="2" />
<entry key="tsconfig" value="1" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="bat" value="29" />
<entry key="gitignore" value="27" />
<entry key="js" value="3748" />
<entry key="json" value="119" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="JSON" value="119" />
<entry key="JavaScript" value="3748" />
<entry key="PLAIN_TEXT" value="56" />
</counts>
</usages-collector>
</session>
</component>
<component name="FileEditorManager">
<leaf>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/registration.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="27" column="42" selection-start-line="27" selection-start-column="23" selection-end-line="27" selection-end-column="42" />
<folding>
<element signature="e#57#88#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/quiz.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="34" column="42" selection-start-line="34" selection-start-column="42" selection-end-line="34" selection-end-column="42" />
<folding>
<element signature="e#17#37#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/accounts.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="9" column="15" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="15" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="115">
<caret line="5" column="44" lean-forward="true" selection-start-line="5" selection-start-column="22" selection-end-line="5" selection-end-column="44" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/passwords.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="229701">
<caret line="9987" column="14" selection-start-line="9987" selection-start-column="14" selection-end-line="9987" selection-end-column="14" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="tsconfig.json" />
<option value="JavaScript File" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>'</find>
</findStrings>
<replaceStrings>
<replace>&quot;</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/passwords.json" />
<option value="$PROJECT_DIR$/utils.js" />
<option value="$PROJECT_DIR$/config.json" />
<option value="$PROJECT_DIR$/accounts.json" />
<option value="$PROJECT_DIR$/registration.js" />
<option value="$PROJECT_DIR$/reg.bat" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/quiz.js" />
<option value="$PROJECT_DIR$/.gitignore" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
<package-json value="$PROJECT_DIR$/package.json" />
</component>
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodeModulesDirectoryManager">
<handled-path value="$PROJECT_DIR$/node_modules" />
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths>
<path value="$PROJECT_DIR$/package.json" />
</packageJsonPaths>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1056" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="TinaGTG" type="b2602c69:ProjectViewProjectNode" />
<item name="TinaGTG" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="MTConfigurable" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="npm.Start">
<configuration name="Register Account" type="js.build_tools.npm" factoryName="npm">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="register" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<configuration name="Start" type="js.build_tools.npm" factoryName="npm">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="start" />
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<list>
<item itemvalue="npm.Start" />
<item itemvalue="npm.Register Account" />
</list>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="5d8be6cd-8630-4f2d-9919-fd8005be8d84" name="Default Changelist" comment="" />
<created>1540061216731</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1540061216731</updated>
<workItem from="1540061218308" duration="13476000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="13476000" />
</component>
<component name="ToolWindowManager">
<frame x="70" y="-8" width="1858" height="1096" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="npm" side_tool="true" />
<window_info id="Favorites" side_tool="true" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24986272" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" show_stripe_button="false" />
<window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.32912722" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.32912722" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39957938" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/utils.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="32" column="6" selection-start-line="32" selection-start-column="6" selection-end-line="32" selection-end-column="6" />
<folding>
<element signature="e#0#31#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tsconfig.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="69">
<caret line="3" column="18" lean-forward="true" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/passwords.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="229701">
<caret line="9987" column="14" selection-start-line="9987" selection-start-column="14" selection-end-line="9987" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/reg.bat">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="92">
<caret line="4" column="42" lean-forward="true" selection-start-line="4" selection-start-column="42" selection-end-line="4" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="115">
<caret line="5" column="44" lean-forward="true" selection-start-line="5" selection-start-column="22" selection-end-line="5" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/accounts.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="9" column="15" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/registration.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="27" column="42" selection-start-line="27" selection-start-column="23" selection-end-line="27" selection-end-column="42" />
<folding>
<element signature="e#57#88#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/quiz.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="34" column="42" selection-start-line="34" selection-start-column="42" selection-end-line="34" selection-end-column="42" />
<folding>
<element signature="e#17#37#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
</state>
</provider>
</entry>
</component>
</project>

10
config.json Normal file
View File

@@ -0,0 +1,10 @@
{
"TEST_SERVER_URL": "https://test-users.tinagtg.com",
"TEST_SOCKET_URL": "wss://test.tinagtg.com",
"PROD_SERVER_URL": "https://users.tinagtg.com",
"PROD_SOCKET_URL": "wss://play.tinagtg.com",
"endpoints": {
"register": "/parse/users"
}
}

3544
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

29
package.json Normal file
View File

@@ -0,0 +1,29 @@
{
"name": "tinagtg",
"version": "1.0.0",
"description": "This is not a game: The Game WS inspector",
"main": "quiz.js",
"dependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2016": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"discord.js": "^11.3.2",
"faker": "^4.1.0",
"fs": "0.0.1-security",
"request": "^2.87.0",
"request-promise": "^4.2.2",
"select-shell": "^1.1.2",
"simple-node-logger": "^0.93.37",
"url": "^0.11.0",
"uuid4": "^1.1.4",
"ws": "^5.2.2"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "babel-node quiz.js --presets env,es2016,stage-2",
"register": "babel-node registration.js --presets env,es2016,stage-2"
},
"author": "MrARM",
"license": "ISC"
}

10004
passwords.json Normal file

File diff suppressed because it is too large Load Diff

64
quiz.js Normal file
View File

@@ -0,0 +1,64 @@
// The WS Piece
import ws from 'ws';
import fs from 'fs';
const config = JSON.parse(fs.readFileSync('config.json'));
const players = [];
fs.readFile('accounts.json',(err,data)=> {
if (err) throw err;
const accounts = JSON.parse(data).accounts;
const cleanPrint = (message, acc) => {
if(acc === accounts[0]){
console.log(message);
}
};
accounts.forEach((acc)=>{
let masterPingTimeout = null;
let masterPingInterval = null;
let sid = null;
let connected = false;
const socket = new ws(config.PROD_SOCKET_URL+'/socket.io/?EIO=3&transport=websocket');
players.push(socket);
socket.on('open', () => {
connected = true;
masterPingInterval = setInterval(function () {
if (!connected) return;
try {
socket.send('2');
masterPingTimeout = setTimeout(()=>{
socket.close();
console.error(`Player ${acc.username} did not receive a ping in time!`);
connected = false;
},8000);
} catch (error) {
console.error(error);
}
}, 8000);
});
socket.on('message', (message) => {
//console.log(message);
if(message.includes('0{"sid')){
const msg = JSON.parse(message.slice(1));
sid = msg.sid;
}
else if(message == '40'){
socket.send(`420["GAME_JOIN",{"userId":"${acc.objectId}"}]`);
}
else if(message.includes('430')){
console.log(`Player ${acc.username} has connected!`);
socket.send(`421["GAME_GET_STATUS",{"userId":"${acc.objectId}"}]`);
socket.send('422["TIME_SYNC",null]');
} else if(message.includes('42["GAME_CLIENT_COUNT_UPDATE"')){
// Text Sat Oct 20 13:10:22 CDT 2018 Sat Oct 20 13:10:22 CDT 2018 42["GAME_CLIENT_COUNT_UPDATE",15]
let online = message.split(',')[1].replace(/\W/g, '');
cleanPrint(`There are currently ${online} players online!`,acc);
} else if(message == '3'){
clearTimeout(masterPingTimeout);
}
});
});
});

5
reg.bat Normal file
View File

@@ -0,0 +1,5 @@
@echo off
ECHO Start of Loop
for /L %%n in (1,1,50) do npm run register

80
registration.js Normal file
View File

@@ -0,0 +1,80 @@
// Register an account
const rp = require('request-promise');
import * as faker from 'faker';
import uuid4 from 'uuid4';
import fs from 'fs';
const config = JSON.parse(fs.readFileSync('config.json'));
const accountgen = () =>{
// Firstly, generate some fake submission data
const choice = Math.floor(Math.random() * 3) + 1;
let username = "";
switch (choice) {
case 1:
username = `${faker.fake("{{name.firstName}}")}${Math.floor(Math.random() * 300) + 1}`;
break;
case 2:
username = faker.fake("{{name.lastName}}{{lorem.word}}");
break;
case 3:
username = `${faker.fake("{{random.word}}")}${Math.floor(Math.random() * 300) + 1}`;
break;
default:
username = faker.fake("{{hacker.noun}}{{hacker.verb}}");
break;
}
username = username.replace(/\W/g, '');
const email = `${faker.internet.email().split('@')[0]}@ahem.email`;
const pwdata = fs.readFileSync('passwords.json');
const pwObj = JSON.parse(pwdata).passwords;
const pickedpw = pwObj[Math.floor(Math.random() * 9999) + 1];
const password = pickedpw.charAt(0).toUpperCase() + pickedpw.slice(1);
const install_id = uuid4();
return {"username":username,"password":password,"email":email,"_ApplicationId":"TINAGTG_PARSE","_ClientVersion":"js1.11.1","_InstallationId":install_id};
};
const account = accountgen();
// Fire the request
rp({
method: 'POST',
uri: `${config.PROD_SERVER_URL}${config.endpoints.register}`,
body: account,
json: true // Automatically stringifies the body to JSON
}).then( (parsedBody)=> {
// Registered!
account.objectId = parsedBody.objectId;
account.sessionToken = parsedBody.sessionToken;
const onboardJSON = {"onboarded":true,"_method":"PUT","_ApplicationId":"TINAGTG_PARSE","_ClientVersion":"js1.11.1","_InstallationId":account._InstallationId,"_SessionToken":account.sessionToken};
rp({
method: 'POST',
uri: `${config.PROD_SERVER_URL}/parse/classes/_User/${account.objectId}`,
body: onboardJSON,
json: true
}).then((pBody)=>{
fs.readFile('accounts.json', (err,data)=>{
if(err) throw err;
const accountdata = JSON.parse(data);
accountdata.accounts.push(account);
const newdata = JSON.stringify(accountdata,null,2);
fs.writeFile('accounts.json', newdata, (err) => {
if(err) throw err;
console.log('The account has been registered!');
});
});
}).catch((err)=>{
console.log();
console.error(err);
});
}).catch((err) => {
console.error(err);
console.log(account);
});