This application allows you to scrape the new Garry's Mod wiki which can be accessed via https://wiki.facepunch.com/gmod/.
- Node.js
>= 18.17
- npm
>= 7
npm often comes bundled with Node.js so you probably won't need to install that separately.
npm install -g gmod-wiki-scraper
gmod-wiki-scraper
This will retrieve all functions, hooks, enums, etc. from the wiki and save them as JSON files into an output directory in your current working directory.
gmod-wiki-scraper features a rudimentary cli:
$ gmod-wiki-scraper --help
Usage: gmod-wiki-scraper [OPTIONS]
Options:
--help Show help [boolean]
--version, -v Print the version of gmod-wiki-scraper [boolean]
--skip-global-functions Do not retrieve global functions [boolean]
--skip-classes Do not retrieve classes [boolean]
--skip-libraries Do not retrieve libraries [boolean]
--skip-hooks Do not retrieve hooks [boolean]
--skip-panels Do not retrieve panels [boolean]
--skip-enums Do not retrieve enums [boolean]
--skip-structs Do not retrieve structs [boolean]
WIP
This will retrieve the content of Global.Entity and parse it.
import { WikiApiClient, WikiScraper } from 'gmod-wiki-scraper';
const client = new WikiApiClient();
const scraper = new WikiScraper(client);
const page = await client.retrievePage('Global.Entity')
const parsedFunctionPage = scraper.parseFunctionPage(page.content);
console.log(parsedFunctionPage);
Output:
{
name: 'Entity',
parent: 'Global',
realms: [ 'client', 'server' ],
description: 'Returns the entity with the matching <page>Entity:EntIndex</page>.\n' +
'\n' +
'Indices 1 through <page>game.MaxPlayers</page>() are always reserved for players.\n' +
'\n' +
"<note>In examples on this wiki, **Entity( 1 )** is used when a player entity is needed (see ). In singleplayer and listen servers, **Entity( 1 )** will always be the first player. In dedicated servers, however, **Entity( 1 )** won't always be a valid player.</note>",
arguments: [
{
name: 'entityIndex',
type: 'number',
description: 'The entity index.'
}
],
returnValues: [
{
type: 'Entity',
description: "The entity if it exists, or NULL if it doesn't."
}
]
}