2020-10-02 12:01:51 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// Core modules
|
|
|
|
const { join } = require('path');
|
|
|
|
|
2020-10-01 19:13:23 +00:00
|
|
|
/**
|
|
|
|
* Class containing variables shared between modules.
|
|
|
|
*/
|
|
|
|
class Shared {
|
2020-10-02 12:01:51 +00:00
|
|
|
//#region Properties
|
2020-10-01 19:13:23 +00:00
|
|
|
/**
|
|
|
|
* Shows log messages and other useful functions for module debugging.
|
2020-10-02 12:01:51 +00:00
|
|
|
* @type Boolean
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static _debug = false;
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* Indicates whether a user is logged in to the F95Zone platform or not.
|
|
|
|
* @type Boolean
|
|
|
|
*/
|
2020-10-01 19:13:23 +00:00
|
|
|
static _isLogged = false;
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* List of cookies obtained from the F95Zone platform.
|
|
|
|
* @type Object[]
|
|
|
|
*/
|
2020-10-01 19:13:23 +00:00
|
|
|
static _cookies = null;
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* List of possible game engines used for development.
|
|
|
|
* @type String[]
|
|
|
|
*/
|
2020-10-01 19:13:23 +00:00
|
|
|
static _engines = null;
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* List of possible development statuses that a game can assume.
|
|
|
|
* @type String[]
|
|
|
|
*/
|
2020-10-01 19:13:23 +00:00
|
|
|
static _statuses = null;
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* Wait instruction for the browser created by puppeteer.
|
|
|
|
* @type String
|
|
|
|
*/
|
2020-10-01 19:13:23 +00:00
|
|
|
static WAIT_STATEMENT = 'domcontentloaded';
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* Path to the directory to save the cache generated by the API.
|
|
|
|
* @type String
|
|
|
|
*/
|
|
|
|
static _cacheDir = './f95cache';
|
|
|
|
/**
|
|
|
|
* If true, it opens a new browser for each request to
|
|
|
|
* the F95Zone platform, otherwise it reuses the same.
|
|
|
|
* @type Boolean
|
|
|
|
*/
|
|
|
|
static _isolation = false;
|
|
|
|
//#endregion Properties
|
2020-10-01 19:13:23 +00:00
|
|
|
|
2020-10-02 12:01:51 +00:00
|
|
|
//#region Getters
|
2020-10-01 19:13:23 +00:00
|
|
|
/**
|
|
|
|
* Shows log messages and other useful functions for module debugging.
|
2020-10-02 12:01:51 +00:00
|
|
|
* @returns {Boolean}
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static get debug() {
|
|
|
|
return this._debug;
|
|
|
|
}
|
|
|
|
/**
|
2020-10-02 15:43:14 +00:00
|
|
|
* Indicates whether a user is logged in to the F95Zone platform or not.
|
|
|
|
* @returns {Boolean}
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static get isLogged() {
|
|
|
|
return this._isLogged;
|
|
|
|
}
|
|
|
|
/**
|
2020-10-02 15:43:14 +00:00
|
|
|
* List of cookies obtained from the F95Zone platform.
|
2020-10-08 21:08:20 +00:00
|
|
|
* @returns {Object[]}
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static get cookies() {
|
|
|
|
return this._cookies;
|
|
|
|
}
|
|
|
|
/**
|
2020-10-02 15:43:14 +00:00
|
|
|
* List of possible game engines used for development.
|
2020-10-02 12:01:51 +00:00
|
|
|
* @returns {String[]}
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static get engines() {
|
|
|
|
return this._engines;
|
|
|
|
}
|
|
|
|
/**
|
2020-10-02 15:43:14 +00:00
|
|
|
* List of possible development states that a game can assume.
|
2020-10-02 12:01:51 +00:00
|
|
|
* @returns {String[]}
|
2020-10-01 19:13:23 +00:00
|
|
|
*/
|
|
|
|
static get statuses() {
|
|
|
|
return this._statuses;
|
|
|
|
}
|
2020-10-02 12:01:51 +00:00
|
|
|
/**
|
|
|
|
* Directory to save the API cache.
|
|
|
|
* @returns {String}
|
|
|
|
*/
|
|
|
|
static get cacheDir() {
|
|
|
|
return this._cacheDir;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* Path to the F95 platform cache.
|
|
|
|
* @returns {String}
|
|
|
|
*/
|
|
|
|
static get cookiesCachePath() {
|
|
|
|
return join(this._cacheDir, 'cookies.json');
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* Path to the game engine cache.
|
|
|
|
* @returns {String}
|
|
|
|
*/
|
|
|
|
static get enginesCachePath() {
|
|
|
|
return join(this._cacheDir, 'engines.json');
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* Path to the cache of possible game states.
|
|
|
|
* @returns {String}
|
|
|
|
*/
|
|
|
|
static get statusesCachePath() {
|
|
|
|
return join(this._cacheDir, 'statuses.json');
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* If true, it opens a new browser for each request
|
|
|
|
* to the F95Zone platform, otherwise it reuses the same.
|
|
|
|
* @returns {Boolean}
|
|
|
|
*/
|
|
|
|
static get isolation() {
|
|
|
|
return this._isolation;
|
|
|
|
}
|
|
|
|
//#endregion Getters
|
|
|
|
|
|
|
|
//#region Setters
|
|
|
|
static set cookies(val) {
|
|
|
|
this._cookies = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set engines(val) {
|
|
|
|
this._engines = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set statuses(val) {
|
|
|
|
this._statuses = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set cacheDir(val) {
|
|
|
|
this._cacheDir = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set debug(val) {
|
|
|
|
this._debug = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set isLogged(val) {
|
|
|
|
this._isLogged = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static set isolation(val) {
|
|
|
|
this._isolation = val;
|
|
|
|
}
|
|
|
|
//#endregion Setters
|
2020-10-01 19:13:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = Shared;
|