The backend server for the CS:GO hub Discord bot
Go to file
Jesper Bak Handskemager 0c31f46b3b
Merge development
Development
2022-09-21 22:45:20 +02:00
assets Remove anchor link 2022-09-21 18:02:22 +02:00
sites Remove anchor link 2022-09-21 18:02:22 +02:00
.gitignore Initial commit 2022-09-16 14:54:23 +02:00
config.yaml Add discord token field 2022-09-17 21:20:27 +02:00
go.mod Initialize project 2022-09-16 15:43:30 +02:00
go.sum Initialize project 2022-09-16 15:43:30 +02:00
LICENSE Initial commit 2022-09-16 14:54:23 +02:00
main.go hotfix/Whops discord id's can be larger than 18 chars 2022-09-21 22:34:03 +02:00
README.md Update README 2022-09-21 22:36:18 +02:00
steam.go Much better success page along with better project structure 2022-09-20 01:14:56 +02:00

CS:GO Hub backend

About

This is the backend, which works with Steam's OpenID to gather their Steam ID and convert it to the corresponding CS:GO friend code. It functions with the CS:GO Hub Discord bot.

A user can request a token from the bot by issuing the /link-steam command in any server where the bot is present or in the bot's DM's. The bot takes note of the Discord Id, and sends it along in the token request (the endpoint can only be accessed from localhost for security).

The bot responds to the user with a formatted link to the steam.csgohub.xyz site appended by their token, and the backend gathers various informations from both the database along with data from Discord's API.

Once a user is linked, anyone can issue the /show-team command in any channel the server owner permits and the bot will reply with a list of friend codes for any linked users in the same voice channel.

Database

You need the following tables in MySQL

CREATE TABLE
  `tokens` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `discord_id` varchar(21) COLLATE utf8mb4_unicode_ci NOT NULL,
    `token` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL,
    PRIMARY KEY (`id`)
  ) ENGINE = InnoDB AUTO_INCREMENT = 17 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
CREATE TABLE
  `users` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
    `discord_id` varchar(21) COLLATE utf8mb4_unicode_ci NOT NULL,
    `friend_code` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'NULL',
    PRIMARY KEY (`id`)
  ) ENGINE = InnoDB AUTO_INCREMENT = 6 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci