Skip to content

Instantly share code, notes, and snippets.

@renatorib
Created February 25, 2015 18:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renatorib/2711e0701a39bfc2bca2 to your computer and use it in GitHub Desktop.
Save renatorib/2711e0701a39bfc2bca2 to your computer and use it in GitHub Desktop.
Gesior API
var request = require('request');
module.exports = function(site){
this.site = site;
this.cookiejar = request.jar();
var self = this;
// Request Wrapper
this.request = function(method, path, data, callback){
var options = {
url: self.site + "/" + path,
form: data,
method: method.toUpperCase(),
headers: {
"Content-Type": 'application/x-www-form-urlencoded'
},
jar: self.cookiejar
};
return request(options, callback);
}
// Methods
/**
* Create new account
*
* @param {String} account
* @param {String} password
* @param {String} email
* @param {Function} callback
*/
this.createAccount = function(account, password, email, callback){
var path = "?subtopic=createaccount&action=saveaccount";
var data = {
reg_name: account,
reg_email: email,
reg_password: password,
reg_password2: password,
rules: true
};
self.request('post', path, data, callback);
}
/**
* Login into account
*
* @param {String} account
* @param {String} password
* @param {Function} callback
*/
this.login = function(account, password, callback){
var path = "?subtopic=accountmanagement";
var data = {
account_login: account,
password_login: password
};
self.request('post', path, data, callback);
}
/**
* Logout from account
*
* @param {Function} callback
*/
this.logout = function(callback){
var path = "?subtopic=accountmanagement&action=logout";
self.request('get', path, {}, callback);
}
/**
* Create new character - Must be logged in
*
* @param {String} account
* @param {String} password
* @param {String} email
* @param {Function} callback
*/
this.createCharacter = function(name, sex, vocation, callback){
var path = "?subtopic=accountmanagement&action=createcharacter";
var data = {
savecharacter: 1,
newcharname: name,
newcharsex: sex,
newcharvocation: vocation
};
self.request('post', path, data, callback);
}
return this;
}
module.exports = {
/**
* Generate random word (function by James Padolsey)
*
* @param {Int} lenght
* @return {String}
*/
randomWord: function(length){
var consonants = 'bcdfghjklmnpqrstvwxyz',
vowels = 'aeiou',
rand = function(limit) {
return Math.floor(Math.random()*limit);
},
i, word='', length = parseInt(length,10),
consonants = consonants.split(''),
vowels = vowels.split('');
for (i=0;i<length/2;i++) {
var randConsonant = consonants[rand(consonants.length)],
randVowel = vowels[rand(vowels.length)];
word += (i===0) ? randConsonant.toUpperCase() : randConsonant;
word += i*2<length-1 ? randVowel : '';
}
return word;
},
/**
* Generate random name
*
* @return {String}
*/
randomName: function(){
return this.randomWord(6) + " " + this.randomWord(6);
},
/**
* Generate random email
*
* @return {String}
*/
randomEmail: function(){
return this.randomWord(3).toLowerCase() + "@" + this.randomWord(6).toLowerCase() + ".com";
},
/**
* Generate random account/password
*
* @return {String}
*/
randomAccount: function(){
return this.randomWord(8).toLowerCase();
},
randomPassword: function(){
return this.randomAccount();
},
}
// Modules & Startup
var gesiorapi = require('./lib/gesiorapi');
var gen = new require('./lib/randomgen');
var gesior = new gesiorapi('http://conquer-global.com/');
// Generate account settings
var accpass = gen.randomAccount();
var email = gen.randomEmail();
// Process
gesior.createAccount(accpass, accpass, email, function(err, response, body){
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment