Added game ID

pull/47/head
MillenniumEarl 2020-11-07 18:16:20 +01:00
parent 222fe21185
commit 28b1bf0ea2
3 changed files with 24 additions and 1 deletions

View File

@ -51,6 +51,6 @@ async function main() {
// Extract first game
const gamedata = found[0];
console.log(`Found ${gamedata.name} (${gamedata.version}) by ${gamedata.author}`);
console.log(`Found ${gamedata.name} (${gamedata.version}, ID ${gamedata.id}) by ${gamedata.author}`);
}
}

View File

@ -3,6 +3,11 @@
class GameInfo {
constructor() {
//#region Properties
/**
* Unique ID of the game on the platform.
* @type Number
*/
this.id = -1;
/**
* Game name
* @type String

View File

@ -40,6 +40,7 @@ module.exports.getGameInfo = async function (url) {
// Fill in the GameInfo element with the information obtained
const info = new GameInfo();
info.id = extractIDFromURL(url);
info.name = titleData.name;
info.author = titleData.author;
info.isMod = prefixesData.mod;
@ -353,6 +354,23 @@ function isMod(prefix) {
return modPrefixes.includes(prefix.toUpperCase());
}
/**
* @private
* Extracts the game's unique ID from the game's URL.
* @param {String} url Game's URL
* @return {Number} Game's ID
*/
function extractIDFromURL(url) {
// URL are in the format https://f95zone.to/threads/GAMENAME-VERSION-DEVELOPER.ID/
const splitted = url.split(".");
// We took the last part (clean it)
const value = splitted.pop().replace("/", "").trim();
// Parse and return number
return parseInt(value, 10);
}
/**
* @private
* Makes an array of strings uppercase.