Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Ionaru/MarketBot

A Discord bot for looking up EVE Online market prices
https://github.com/Ionaru/MarketBot

discord discord-bot eve-online eve-swagger-interface nodejs spaceships typescript

Last synced: 3 days ago
JSON representation

A Discord bot for looking up EVE Online market prices

Awesome Lists containing this project

README

        

# Discord MarketBot for EVE Online
[![Build Status](https://img.shields.io/travis/Ionaru/MarketBot/master.svg?style=for-the-badge)](https://travis-ci.org/Ionaru/MarketBot)
[![codecov](https://img.shields.io/codecov/c/github/Ionaru/MarketBot/master.svg?style=for-the-badge)](https://codecov.io/gh/Ionaru/MarketBot)
[![Internet spaceships are serious business](https://img.shields.io/badge/internet%20spaceships-are%20serious%20business-2F849E.svg?style=for-the-badge)](https://www.eveonline.com/)

## General information
The purpose of this bot is to get fast information on the EVE Online market for specific items and in specific regions.

It uses a combination of data from [Evepraisal](https://evepraisal.com/) and the [EVE Swagger Interface](https://esi.evetech.net/) provided by CCP.

## Usage
[Add this bot to your Discord server!](https://discordapp.com/oauth2/authorize?client_id=302011421523443713&scope=bot%20applications.commands) or alternatively you can [try it out first on my dev server](https://discord.gg/uza8mpH).

#### Bot commands
[Commands can be found on the MarketBot website's commands page.](https://ionaru.github.io/MarketBot/commands/)

#### Discord permissions
[Required permissions can be found on the MarketBot website's permissions page.](https://ionaru.github.io/MarketBot/permissions/)

## Screenshots
MarketBot in action!

![Image of price command](https://user-images.githubusercontent.com/3472373/37924487-42f77698-3132-11e8-9df4-c316ee4457f5.png)

![Image of sell command](https://user-images.githubusercontent.com/3472373/37924510-560e97b6-3132-11e8-9fd3-54df753bbc1f.png)

![Image of item command](https://user-images.githubusercontent.com/3472373/37924531-7113853a-3132-11e8-94ca-c920e356bbb1.png)

![Image of history command](https://user-images.githubusercontent.com/3472373/37924569-8c5fa3a0-3132-11e8-9b56-e6bbbcee37bc.png)

## Logging
This bot keeps records of issued commands, this data is used to monitor performance, usage and accuracy of the bot.

What information does it save?
* The channel in which the command was issued.
* For counting how many unique channels/servers this bot is active in.
* The username and id of the user who issued a command to the bot.
* This helps me count how many unique channels the bot is active in, because the above logging does not include Direct Message channels
* The item-parameter of the command and the item the bot did the search for.
* For monitoring the accuracy of the bot's guessing system and tracking which items are most often searched for. This data will allow me to build shortcuts in the guessing system to improve performance.
* The region-parameter of the command and the region the bot did the search for.
* For counting which regions are most often selected to search in. I have a feeling it'll be The Forge, but with this data I can build new functionality that can search a select few regions at the same time to get you the best item price. It is impractical to have this feature search all regions in New Eden.

## Feature requests
Please open an [issue](https://github.com/Ionaru/MarketBot/issues/new) if you have any feature ideas for this bot
or are missing any functionality.

Alternatively you can contact me in EVE Online: `Ionaru Otsada`, or on Discord: `Ionaru#3801`.

## Self-hosting
It is possible to self-host this bot, it requires NodeJS 14 or greater.

#### Step one: Creating a bot user
1. Go to [https://discordapp.com/developers/applications/me](https://discordapp.com/developers/applications/me).
2. Create a new App, give it a name and picture. The "redirect URL" is not needed. Click "Create App".
3. Click on "Create a Bot User" and confirm.
4. Click the link next to "Token" to reveal your Discord Bot Token, you will need it later.
5. Invite the bot to your server by placing the bot's Client ID in this link: `https://discordapp.com/oauth2/authorize?client_id=PLACE_CLIENT_ID_HERE&scope=bot%20applications.commands`
6. Paste the link in your web browser and follow the steps on the Discord website.

#### Step two (Docker): Installing the bot
1. Install [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/).
2. Go to the [Releases page](https://github.com/Ionaru/MarketBot/releases), download and extract the latest release.
4. Go to the config folder, create a copy of `marketbot.template.ini` and name the copy `marketbot.ini`. Set the Discord Bot Token to the one you created.
5. Create a `.env` file containing the variables `MARKETBOT_CONFIG_VOLUME`, `MARKETBOT_DATA_VOLUME` and `MARKETBOT_LOG_VOLUME` pointing to the relevant directories (or leave them empty).
6. Run `docker-compose up`.

#### Step two (Node.js): Installing the bot
1. Install [Node.js](https://nodejs.org/en/download/current/).
2. Go to the [Releases page](https://github.com/Ionaru/MarketBot/releases), download and extract the latest release.
3. Install dependencies with `npm install`.
4. Go to the config folder, create a copy of `marketbot.template.ini` and name the copy `marketbot.ini`. Set the Discord Bot Token to the one you created.
5. Go back to the main folder and run `npm start`.

Contact me in EVE Online: `Ionaru Otsada` or on Discord: `Ionaru#3801` if you need any assistance.

## To-Do & Ideas
- [x] Support for searches in Jita, Amarr & other trade hubs
- [ ] % difference between lowest sell order and highest buy order
- [ ] Show volume in price history
- [ ] Show deviation between low and high in price history
- [ ] EVE Online quotes in bot (error) messages
- [x] Darker graphs to better match Discord colors
- [x] More information in price command output (low/high)

## Developer information
Want to contribute? Awesome!
Just follow these steps to get started:
1. Fork this repository and clone the fork into a directory of your choice.
2. Follow the Self-hosting steps to get a development version of the bot up and running
3. Make your changes, test them and create a pull request.

# Special thanks
[![Bugsnag](https://images.typeform.com/images/QKuaAssrFCq7/image/default)](https://bugsnag.com)