Skip to content

s0me-1/devtracker-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevTracker Bot Logo

DevTracker

Discord server invite PyPI supported Python versions

Discord Bot interfacing with the API of DeveloperTracker.com.

Built with Disnake.

Features

This Bot track any post made by GameDevs from 30+ games, and let you follow the one you want via Discord Slash Commands.

  • Posts are compatible with the Discord Markdown Implementation.
  • Follow any supported game at the same time.
  • Set a specific channel per followed game if desired.
  • Ignore posts from specific GameDevs

DevTracker Post Example Steam

Supported Games

This is a non-exhaustive list of the games supported by the bot. You can find the full list here.

  • ARK: Survival Evolved
  • Anthem
  • Battlefield 1
  • Conan: Exiles
  • Core Keeper
  • Counter Strike: Global Offensive
  • Darwin Project
  • DayZ
  • Dead Matter
  • Destiny 2
  • Dwarf Fortress
  • Dyson Sphere Program
  • Elite: Dangerous
  • Escape from Tarkov
  • Fortnite
  • Going Medieval
  • Hearthstone
  • Icarus
  • It Lurks Below
  • Magic: The Gathering Arena
  • Marauders
  • Oxygen Not Included
  • PLAYERUNKNOWN'S BATTLEGROUNDS
  • Path of Exile
  • Rainbow 6: Siege
  • Realm Royale
  • RimWorld
  • Rocket League
  • Satisfactory
  • Sea of Thieves
  • Space Haven
  • Star Citizen
  • Starbase
  • Stonehearth
  • The Cycle: Frontier
  • The Planet Crafter
  • They Are Billions
  • V Rising
  • Valheim

Getting Started

Installation

Click the button below to add DevTracker to your server.

Basic setup

Simply create a channel where you want to receive the posts, make sure DevTracker has the View Channel and Send Messages Discord permissions for that channel.

Then, use the /dt-set-channel command to tell the bot where to send the posts. e.g.:

 /dt-set-channel game channel: #sc-devtracker game: Star Citizen

Advanced setup

You have 2 options, use a single channel for all the posts, or use a specific channel for each game:

  • Single channel: Use the /dt-set-channel default command to set the default channel for all the posts. e.g.:
 /dt-set-channel default channel: #devtracker

You can then use the /dt-follow command to follow games. e.g.:

/dt-follow game: Star Citizen
/dt-follow game: Elite: Dangerous

Now all the posts from Star Citizen and Elite: Dangerous will be sent to the #devtracker channel.

  • Specific channel per game: Use the /dt-set-channel game command to set a specific channel for each game. e.g.:
 /dt-set-channel game channel: #sc-devtracker game: Star Citizen

Commands

Each Slash Command has autofillers to help you.

Slash Command autofiller example

Filtering posts

Allowlist & Ignorelist

You can setup allowlists or ignorelists to filter posts for each game.

  • allowlist: Only posts matching the accounts or service in this list will be sent.
  • ignorelist: Posts matching the accounts or service in this list will be ignored.

Notes:

  • Each allowlist or ignorelist is game-specific, so you can have different filters for each game.
  • You can use both at the same time, but the allowlist will take precedence over the ignorelist. E.g. if you have an igorelist with a specific account for Star Citizen from the Twitter service, and an allowlist for the whole rsi service for Star Citizen, only posts from the rsi service will be sent, the ignored account will not even be considered.
  • You'll find the account_id in the footer of each post.

Ignore specific accounts or service:

This is achieved via the /dt-ignorelist command. Any future post from the specified account or service from the ignorelist for the specified game will be ignored.

Examples:

# Ignore posts from a specific account
/dt-ignorelist add account game_name: Star Citizen service_id: rsi account_id: Zyloh-CIG

# Ignore all posts from a specific service
/dt-ignorelist add service game_name: Star Citizen service_id: rsi

# Stop ignoring posts from a specific service
/dt-ignorelist remove service game_name: Star Citizen service_id: rsi

# Stop ignoring posts from a specific account
/dt-ignorelist remove account game_name: Star Citizen account_id: Zyloh-CIG

Get only posts from specific accounts or service:

This is achieved via the /dt-allowlist command. Any future post from the specified account or service from the allowlist will be the only ones sent for the specified game.

Usage is the same than the ignorelist command.

Examples:

# Get posts from a specific account only
/dt-allowlist add account game_name: Star Citizen service_id: rsi account_id: Zyloh-CIG

# Get posts from a specific service only
/dt-allowlist add service game_name: Star Citizen service_id: rsi

# Remove a specific service from the allowlist
/dt-allowlist remove service game_name: Star Citizen service_id: rsi

# Remove a specific account from the allowlist
/dt-allowlist remove account game_name: Star Citizen account_id: Zyloh-CIG

URL Filters

You can also filter posts by URL. This is useful if you want to get only posts from specific threads. There's two different con

Global URL Filters

Only posts where the origin URL matches the filters will be sent to the channel configured with the /dt-set-channel command.

Example

Let's imagine you want only posts from the Announcements section of the Star Citizen forums. The url for the Announcements section is https://robertsspaceindustries.com/spectrum/community/SC/forum/1

You can use the /dt-urlfilters global command to add forum/1 filter for Star Citizen forums:

/dt-urlfilters global game_name: Star Citizen service_id: rsi

This will open a modal with your current filters.

URL Filters modal

You can then add the forum/1 filter then click the Submit button to apply changes.

Note: You can also add multiple filters for the same service. You just need to separate them with a comma ,. If any of the filters match the post URL, it will be sent to the set channel.

E.g.: forum/1,forum/3,forum/4, this will match any post from the Announcements, General and Feedback sections.

Channel URL Filters

This allows to use URL Filters to dispatch posts that match the filters to a specific channel.

Example

Let's imagine you want all the posts from the Announcements section of the Star Citizen forums to be sent to the #sc-announcements Discord channel. The url for the Announcements section is https://robertsspaceindustries.com/spectrum/community/SC/forum/1

You can use the /dt-urlfilters channel command to add forum/1 filter for Star Citizen forums:

/dt-urlfilters global channel: #sc-announcements game_name: Star Citizen service_id: rsi

This will open a modal with your current filters. You can then add the forum/1 filter then click the Submit button to apply changes.

Note:

  • Please make sure the bot have the Send Message permission for the channel you're using. Otherwise it won't be able to send the posts.
  • You can add multiple filters for the same service here too. You just need to separate them with a comma ,.

Get current configuration

You can use the /dt-config command to get the current configuration for the server.

This will list all the games you're following, and the channel where the posts are sent. It will also give you the active allowlist and ignorelist for each game.

DevTracker Config

Self-Hosting

This Bot relies on the DeveloperTracker API that can be found here.

Once you have your credentials, you can either:

  • Fill the example.env file and rename it into .env.
  • Use docker-compose.yml with Docker Secrets.

Here's what you'll need to set:

  • API_BASE: The DeveloperTracker.com API base url.
  • API_TOKEN: Your DeveloperTracker.com API Token.
  • BOT_TOKEN: Your Discord Bot Token

Optional (Only used when the --log-level debug argument is passed or with docker-compose --profile debug.):

  • DEBUG_GUILD_ID: Your Debug Guild ID, slash commands will only be synchronized for this guild only.
  • DEBUG_BOT_TOKEN: Your Debug Discord Bot Token, to run the bot on a seperate Discord App when debugging.

You can then launch the bot as described below:

Python

Install the pip dependancies (virtual environment recommended).

$ pip -r requirements.txt

And you can simply run the bot with

$ python bot.py

Docker-Compose

Docker will manage the dependancies for you. It will build the images automatically on first run.

$ docker-compose --profile default up -d

Run in debug mode:

$ docker-compose --profile debug up -d

Credits

Official Website

devtracker-bot.github.io/

License

GPL v3