Go to file
baz 5fb39b28b3 Add changelog database 2024-07-13 21:00:14 +01:00
commands Add date field to plangame, startplaying, beatgame commands 2024-07-13 17:10:13 +01:00
events Move from module to commonjs 2023-11-26 23:02:34 +00:00
models Add changelog database 2024-07-13 21:00:14 +01:00
.env.template Update .env variable names 2023-12-30 00:50:23 +00:00
.eslintrc.json Move from module to commonjs 2023-11-26 23:02:34 +00:00
.gitignore Update .gitignore 2024-02-11 19:19:32 +00:00
README.md Update readme.md 2024-03-28 21:28:52 +00:00
convertDatabase.js Introduce statusLastChanged column to BeatenGames table 2024-07-13 16:38:37 +01:00
databaseHelperFunctions.js Add changelog database 2024-07-13 21:00:14 +01:00
dbInit.js Add changelog database 2024-07-13 21:00:14 +01:00
dbObjects.js Add changelog database 2024-07-13 21:00:14 +01:00
deploy-commands.js Update .env variable names 2023-12-30 00:50:23 +00:00
igdb.js Apply linter to igdb.js 2023-11-30 23:38:01 +00:00
igdbHelperFunctions.js Simplify getCoverURL then 2023-12-16 20:37:09 +00:00
index.js Add automatic database backups 2023-12-30 23:38:52 +00:00
logo.png Replace logo 2023-12-31 23:39:23 +00:00
package-lock.json Move from module to commonjs 2023-11-26 23:02:34 +00:00
package.json Move from module to commonjs 2023-11-26 23:02:34 +00:00
populateColumn.js Introduce statusLastChanged column to BeatenGames table 2024-07-13 16:38:37 +01:00

README.md

The Ochulus logo

The Ochulus is a simple personal discord bot used for tracking games completed during a 100 Game Challenge.

Requirements

Software

  • Node.js (version v21.2.0 or later)
  • npm (version 10.2.3 or later)

API Keys

  • Discord Developer Application
  • IGDB Developer Application

How to deploy

  1. Create accounts and install software
    1. Download and install Node.js and npm.
    2. Create Discord Developer Application.
    3. Create IGDB Developer Application.
  2. Create .env using .env.template
    1. Populate discordClientId, discordGuildId and discordToken with your Discord Developer Application details.
    2. Populate igdbClientId and igdbClientSecret with your IGDB Developer Application details.
  3. Run npm install to install Node Packages
  4. Run node .\dbInit.js to create database.
  5. Run node .\deploy-commands.js to deploy commands to your guild
  6. Run node .\index.js to run the bot.

Commands

A list of current commands that can be accessed by all users.

/beatgame

Log a beat game towards the 100 Game Challenge.

Parameters:

Note: One parameter is required.

  • Required
    • gamename - The name of the game.
    • gameid - The IGDB game ID.

/beatlist

Show a list of games the user has beaten.

Parameters:

  • Optional
    • user - The username of a user to check.

/currentlyplaying

Show the list of games the user are currently playing.

Parametes:

  • Optional
    • user - The username of a user to check.

/deletebeatengame

Deletes a game from the users beaten games.

Parameters:

Note: If no parameter is supplied, the latest beat game is deleted.

  • Optional
    • beatgamenumber - The number of the beat game entry to delete.

/deleteplannedgame

Deletes a game from the users planned games.

Parametes:

  • Optional
    • currentgamenumber - The number of the current game entry to delete.

/deleteplayinggame

Deletes a game from the users currently playing games.

Parametes:

  • Optional
    • currentgamenumber - The number of the current game entry to delete.

/estimatedfinishdate

Get an estimated date as to when a user will finish the 100 games challenge.

Parametes:

  • Optional
    • user - The username of a user to check.

/gamedetails

Get the details of a game from the IGDB database.

Parameters:

Note: Only one parameter is required.

  • Required
    • gamename - The name of the game.
    • gameid - The IGDB game ID.

/globalbeatlist

Show a list of all games beaten for the 100 games challenge in chronological order.

/info

Get info on the bot.

/leaderboard

Shows the leaderboard for the 100 Game Challenge.

/plangame

Log a planned game into a list of planned games.

Parameters:

Note: One parameter is required.

  • Required
    • gamename - The name of the game.
    • gameid - The IGDB game ID.

/plannedgames

Show a list of games the user has planned.

Parameters:

  • Optional
    • user - The username of a user to check.

/och

Responds "och".

/randomgame

Get a random game from the IGDB database.

Parameters:

  • Optional
    • madness - Remove restrictions on the games the bot can search for.

/randomplannedgame

Get a random planned game from the list of a users planned games.

Parameters:

  • Optional
    • user - The username of a user to check.

/recentbeat

Get the most recent game a given user has beaten.

Parameters:

  • Optional
    • user - The username of a user to check.

/recentplanned

Get the most recent game a given user has planned.

Parameters:

  • Optional
    • user - The username of a user to check.

/recentplaying

Get the most recent game a given user has started playing.

Parameters:

  • Optional
    • user - The username of a user to check.

/register

Manually registers the user into the 100 Games Challenge.

/searchgames

Searches the IGDB database for a list of matching games.

Parameters:

  • Required
    • gamename - The name of the game.

/startplaying

Log a game into a list of currently playing games.

Parameters:

Note: One parameter is required.

  • Required
    • gamename - The name of the game.
    • gameid - The IGDB game ID.

/user

Get the users info for the 100 Game Challenge

Parameters:

  • Optional
    • user - The username of a user to check.