# ThunderED - Powerful EVE Online Discord Bot with HR and notifications

**URL:** <https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213>\
**Category:** Third Party Developers\
**Tags:** bots, esi, tool\
**Created:** [May 4, 2018, 7:00pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213 "2018-05-04T19:00:39Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [July 20, 2018, 1:45pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/22 "2018-07-20T13:45:01Z")

</div>

### v1.1.7

- Added missing discord roles notification for console and file logs in Auth module
- Added Discord guild ID validity check
- Added new module: moduleFWStats - access to !fwstats command
- Added new command _!turl_ - displays timers auth page url
- Added new command _!timers_ - displays upcoming timers list
- Added connection status check to avoid excessive requests and logging while EVE is offline or network connection is not available
- Added core ContinousCheckModule for misc reporting and processing logic. Now featuring auto-post when TQ goes Online / Offline into selected channels.
- Improved checks performance
- Upgraded to .NET Core 2.1 platform
- Updated config editor to support static modules like Resources and ContinousCheckModule
- Optimized star system data queries to use static data when possible
- Fixed nullsec campaign excessive spam

### Notes

- 4 new Resources section entries in the settings file - ImgFaction
- New properties in the Config section of the settings file: moduleFWStats, moduleLPStock
- New config file section - _ContinousCheckModule_
- New _TinyUrl_ param in Timers section - manually generated tinu url to display for !turl command

### Breaking changes

- Platform has been updated to .NET Core 2.1 which might require an SDK update on the server
- StatsModule config section has been merged into new ContinousCheckModule section with the new property names

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [August 8, 2018, 11:11am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/23 "2018-08-08T11:11:32Z")

</div>

## The very own JackKnife utility integrated with the advanced auth system is coming!

[ThunderED v1.1.8 preview is now available on GitHub!](https://github.com/panthernet/ThunderED)  
Here’s what’s coming in ThunderED v1.1.8

### Highlights - Advanced Web Auth

Improved web authentication module now supports 3 different modes:

1. General auth with no special permissions (as before)
2. General auth with special ESI permissions requested from group applicant. Creates separate auth button on web server.
3. Preliminary auth with special ESI permissions requested from group applicant. Creates separate auth button on web server.

Renewed auth logic now allows you to control which permissions to request from which auth groups, i.e. which data EVE Online characters will share with you upon authentication. If you fill _ESICustomAuthRoles_ param (mode 2) then bot will get a refresh token from character during auth process. This refresh token will be stored in a database and will be used to fetch all required data about registered characters.

You can also set _PreliminaryAuthMode_ (mode 3) to force applicants to wait for an approval  
making it possible to inspect them using “JackKnife” utility named **HRM** before they’re allowed into your corporation or alliance.

_NOTE: Refresh token can be invalidated by user at any time in their EVE Online account settings_  
_NOTE: You have to add all required ESI permissions to your CCP app before you can use them in auth process_

Considering the above you can build your own “JackKnife” recruitment process for selected group as following:

1. Create auth group with _PreliminaryAuthMode_ set to true. This will force group to accept all auth requests and enable refresh token extraction. All appllicants will be put on hold for consequent actions.
2. An applicant should confirm his registration in Discord using _!auth confirm CODE_ command displayed during their auth process. This is needed to bind their registration to Discord account.
3. Now the data from the applicants will be available for review in the HRM Module web page.
4. Decision:
  - If you decide to accept member then just invite him to your corporation and the bot will automatically auth applicant in Discord based on _CorpIDList_ and _AllianceIDList_ params. Make sure to set correct _MemberRoles_ param to apply Discord roles upon successful registration.
  - If you decide to decline application you can set _AppInvalidationInHours_ param which will delete applications when specified amount of hours has passed, decline them manually in HRM module or by using _!auth decline CODE/ID_ command.

### Highlights - JackKnife utility

New HRM module allows you to inspect characters both registered and awaiting auth. Features available for inspection will be expanded with following releases. For now it is limited by SP, corp history, mail, ISK transactions/journal, contracts, contacts and last year stats.

[![](https://global.discourse-cdn.com/eveonline/original/3X/1/3/13c26bc5038d17ab03dd8d300d2ca6b09d4b5210.jpg) ](http://dl4.joxi.net/drive/2018/08/08/0014/0683/967339/39/a89dae449e.jpg)

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [October 3, 2018, 2:15pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/24 "2018-10-03T14:15:24Z")

</div>

**[ThunderED v1.1.8 release is now available!](https://github.com/panthernet/ThunderED/releases/tag/1.1.8)**

### V1.1.8

- Improved web auth module to process authentication for groups with special ESI permission list
- Added new HRM module - human resource management with JackKnife feats, able to display complete data for members authed with special permissions
- Added startup check if settings.json file is present
- Do not generate buttons on the main web page if corresponding module is disabled
- Added optional params to webAuthModule settings group: UseCustomAuthRoles and ESICustomAuthRoles
- Added optional DefaultAuthGroup param to webAuthModule
- Added optional ShowGroupName param to liveKillFeedModule and radiusKillFeedModule
- Added new !authurl command which will return default web auth url based on DefaultAuthGroup param or first auth group found. _!authurl groupName_ will return auth url for specified group name (by default known to admin only).
- Added new KM template param {NewLine} - inserts line break
- Added message filtering to TED\_ChatRelay app
- Improved denied access handling for web modules
- Improved ZKill feeder to don’t feed kills if none of the other modules demands them
- Improved logging
- Fixed discord user names in TelegramRelay module

### Highlights - Advanced Web Auth

Improved web authentication module now supports 3 different modes:

1. General auth with no special permissions (as before)
2. General auth with special ESI permissions requested from group applicant. Creates separate auth button on web server.
3. Preliminary auth with special ESI permissions requested from group applicant. Creates separate auth button on web server.

Renewed auth logic now allows you to control which permissions to request from which auth groups, i.e. which data EVE Online characters will share with you upon authentication.  
By default this feature is disabled and new users will only pass basic auth as before. But if you fill _ESICustomAuthRoles_ param (mode 2) then bot will get a refresh token from character during auth process.  
This refresh token will be stored in a database and will be used to fetch all required data about registered characters. You can also set _PreliminaryAuthMode_ (mode 3) to force applicants to wait for an approval  
making it possible to inspect them using “JackKnife” utility named **HRM** before they’re allowed into your corporation or alliance.

NOTE: Refresh token can be invalidated by user at any time in their EVE Online account settings  
NOTE: You have to add all required ESI permissions to your CCP app before you can use them in auth process

Considering the above you can build your own “JackKnife” recruitment process for selected group as following:

1. Create auth group with _PreliminaryAuthMode_ set to true. This will force group to accept all auth requests and enable refresh token extraction. All appllicants will be put on hold for consequent actions.
2. An applicant should confirm his registration in Discord using _!auth confirm CODE_ command displayed during their auth process. This is needed to bind their registration to Discord account.
3. Now the data from the applicants will be available for review in the HRM Module web page.
4. Decision:

- If you decide to accept member then just invite him to your corporation and the bot will automatically auth applicant in Discord based on _CorpIDList_ and _AllianceIDList_ params. Make sure to set correct _MemberRoles_ param to apply Discord roles upon successful registration.
- If you decide to decline application you can set _AppInvalidationInHours_ param which will delete applications when specified amount of hours has passed, decline them manually in HRM module or by using _!auth decline CODE/ID_ command.

### Breaking changes

- Templates/main.html template file changed
- Templates/auth2.html template file changed
- Templates/accessDenied.html template file added
- Auth group CorpID property renamed to CorpIDList and is now an array of integer values
- Auth group AllianceID property renamed to AllianceIDList and is now an array of integer values

### Notes

- Web templates for HRM are not optimal yet. They use Bootstrap4 + JQuery so any help tuning them to look nice will be highly appreciated.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [October 9, 2018, 8:11am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/25 "2018-10-09T08:11:50Z")

</div>

### V1.1.9

- Updated ZKB handling with the recent API changes (Oct 2, 2018)
- Added ‘d’ param parse for !stats command for current day
- Refined !char and !corp command to query less data due to excessive ESI load
- Fixed radius killmail central system name
- Fixed missing parts in default config file

This is a bugfix release related to recent ZKB changes.

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases/tag/1.1.9)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [December 26, 2018, 11:33pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/26 "2018-12-26T23:33:21Z")

</div>

Ooops. Forgot to update this topic. ThunderED is alive and growing fast!

### The most notable changes so far including V1.2.11 (WIP)

- Added new web button to add timers using the remaining time
- Added Skills table to HRM character inspection module
- Added EVE static data into database: types, groups, systems, regions and constellations
- Added new SystemLogFeeder module to be able to feed bot console messages into the Discord channel
- Added new props FeedPvpKills and FeedPveKills to kill feeder modules to be able to filter PVP and PVE kills
- Added new ContractNotificationsModule to feed contracts to Discord
- Added guest auth mode
- Added contract items to HRM inspection page
- Added new auth functionality: Standings Based Auth (check WIKI for details)
- Added new param RunAsServiceCompatibility for experimental service mode tweaks when bot is running as bg task
- Added new mail search functionality to HRM module
- Added delete auth button to HRM module
- Improved auth logic to be more agile and efficient
- Improved mail parsing and filtering greatly
- Improved stats handling allowing multiple daily stats posts and moved it into the separate module
- Improved help text to display actual command prefix
- Moved authentication buttons to the separate page

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Jin\_Kazuja](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/jin_kazuja/32/72366_2.png) [@Jin\_Kazuja](https://forums.eveonline.com/u/Jin_Kazuja)\
**Post date:** [December 28, 2018, 2:29pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/27 "2018-12-28T14:29:05Z")

</div>

Are it bot support Russian language?

---

<div class="post-metadata">

**Author:** ![Jin\_Kazuja](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/jin_kazuja/32/72366_2.png) [@Jin\_Kazuja](https://forums.eveonline.com/u/Jin_Kazuja)\
**Post date:** [December 29, 2018, 2:20pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/28 "2018-12-29T14:20:54Z")

</div>

One more question… How i install this bot in my personal host… How it do?

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 13, 2019, 10:23am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/29 "2019-01-13T10:23:32Z")

</div>

Yes it does. Full russian support. Also there is installation guide on the bot page on GitHub.

По возможности отвечу на вопросы в Discord: [https://discord.gg/UsnY6UR](https://discord.gg/UsnY6UR)

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 13, 2019, 10:24am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/30 "2019-01-13T10:24:16Z")

</div>

### V1.2.12

- Added option to enforce alliance tickers for users
- Added !lp command to display lp goodies rating for NPC corps
- Added colored standings comparsion in HRM char inspection page between char contact and HR contact for the same entity
- Added FinalTimeMention param for FleetUp module to use custom Discord mention when event is starting
- Added !bs command to display list of lowest standings to NPC corp or faction (nice for FW)
- Added new WebSocket mode for kill feeds (UseSocketsForZKillboard params which is TRUE BY DEFAULT)
- Added new FeedUrlsOnly param for kill feed groups. Bot will post only ZKB url - most efficient but less customizable feed method
- Improved TQ status post to recognize ESI problems and do not post excessive messages
- Improved internal logic in terms of async performance
- Improved kill feeds in terms of performance and query minimization
- Fixed log feed in compatibility mode
- Fixed guest role stripping in some cases

### NOTABLE CHANGES

- Added UseSocketsForZKillboard and ZKillboardWebSocketUrl params to Config section
- Added FeedUrlsOnly param to kill feed modules groups

- Removed EnableCache param from liveKillFeedModule and radiusKillFeedModule

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 21, 2019, 11:58pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/31 "2019-01-21T23:58:27Z")

</div>

Now we support SQLite and MySQL databases with possible extension to other DB sources.

### V1.2.16

- Added AllowedCharacters param group to authentication block which allows individual chars auth the same way as corps and alliances
- Added new settings section: Database
- Added support for **mysql** DB provider
- Added admin command **rngroup** to be able to rename auth groups in DB after its name has been changed in config file
- Added soft lock for a DB upgrade if DB version is below required minimum (for future cleanups)
- Added customizable text fields to auth web page
- Fixed possible DiscordAPI deadlock
- Fixed !char command to display actual Last Seen data for character
- Fixed timers auth using discord admin roles
- Fixed standings auth taking initiative above other groups in some cases
- Fixed timers login error for admins in some cases
- Fixed standings auth error when standings were not yet loaded for feed character
- Improved and optimized internal database handling
- Improved HR module char list loading time
- Improved console logs display
- Improved auth backend
- Refactored database to use identical table name casing
- Updated DiscordAPI library to version 2.0.1

### NOTABLE CHANGES

- This release features some internal DB upgrades. DB backup is created automatically but please do backup before the first launch to be able to rollback just in case.
- Duplicated user Discord IDs will be purged from DB leaving only one user registration per Discord account (dupes were been possible before)
- Added AllowedCharacters param group to authentication block
- It is now possible to use MySQL database
  - Set: “databaseProvider”: “mysql”
  - Create database using SQL: create database thundered;
  - Import MySQL dump file **mysql.dump** into created database
  - Specify “DatabaseName”: “thundered” and other connection settings in Database config section

- Standings auth now use group names during auth process to avoid confusion with other groups when validation criteria overlaps between those groups
- Added localization string **authPageHeaderText** which you can erase or change (displayed on auth page)

### BREAKING CHANGES

- Added new Database settings section for detailed DB setup for different providers
- Moved **databaseProvider** and **databaseFile** params to new Database section

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 22, 2019, 12:39am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/32 "2019-01-22T00:39:35Z")

</div>

Updated preview images in the 1st post

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 29, 2019, 2:39am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/33 "2019-01-29T02:39:27Z")

</div>

### V1.2.17

- Added log message to highlight inconsistency in auth group names between DB and config file
- Added warning messages if discord channel is not found when sending some messages
- Fixed the case when bot tried to strip ignored roles
- Fixed mysql error for some queries

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [January 31, 2019, 9:41pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/34 "2019-01-31T21:41:39Z")

</div>

### V1.2.19

- Added new !sys command for bot admins
- Added warning messages for modules when feeder character is not authed or has outdated token
- Added ability to open posted contracts from Discord message right into the game client (read notes section below)
- Added **LanguageFilesFolder** param to be able to store customized language files in a separate folder
- Added error message when trying to inspect user in HRM with invalid token
- Added character location and ship info into HR module
- Added new HR users group display named Dump for users who left but hasn;t been cleaned up yet
- Improved auth cleanup (read notes section)
- Improved HR mail readability
- Improved bandwidth and CPU usage for contracts, mail, notifications and null campaigns modules using 304 http response
- Improved auth check module performance
- Fixed notifications feed bug introduced in one of the prev releases
- Fixed excessive renaming attempts when character has very long name
- Fixed new installation upgrade issue

### NOTES

- Added new parameter for contract filters **ShowIngameOpen** - display url in contract message body which will open contract in game client.  
When clicked, user will be prompted to pass simple SSO auth to get one-time access to running game client of selected character. Auth data and permissions for this case will not be saved anywhere.  
Note that you will not be able to open contracts which are unavailable to you.  
CCP application should have **esi-ui.open\_window.v1** scope allowed.

- Added new Config section param **LanguageFilesFolder**. Will be handy for bot owners who has customized language files.  
Bot will search for language files in the specified folder. Leave empty to search in default location.

- Improved auth cleanup. Now bot validates auth not only for present Discord users but also for all users in DB.  
This approach provides faster and better membership management. In addition all users which no longer passes auth will be moved in a temporary “Dump” group.  
This group can be browsed in HR module if user has any ESI permissions and is a subject to cleanup according to **AppInvalidationInHours** param.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [February 18, 2019, 1:05pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/35 "2019-02-18T13:05:55Z")

</div>

ThunderED v1.3.0 is now under development. This version will feature significant improvements to HR module alongside with several configuration and deployment improvements.

It will probably be a major release and will include some new modules. No ETA at the moment. Stay tuned!

---

<div class="post-metadata">

**Author:** ![Mr\_Robotica](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/mr_robotica/32/123242_2.png) [@Mr\_Robotica](https://forums.eveonline.com/u/Mr_Robotica)\
**Post date:** [March 5, 2019, 8:40am UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/36 "2019-03-05T08:40:41Z")

</div>

o7  
i have read kinda most everything here… and then i saw this message so was wondering…  
will the update be a file we need to overwrite over the old one or is it gonna be a total new one…

I ask because i don’t wanna set this all up and then when new update comes i need to do it all over…

Greetz Mr Robotica

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [March 6, 2019, 9:37pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/37 "2019-03-06T21:37:55Z")

</div>

The updates are always prepared with the previous versions in mind so you can easily update your existing bot to the latest version with minimal efforts. Make sure you read breaking changes section in release notes to update your settings and templates correctly if needed.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [March 6, 2019, 9:41pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/38 "2019-03-06T21:41:12Z")

</div>

### V1.3.2 - 1.3.3 — MAJOR UPDATE!

- Added new **UseStrictAuthenticationMode** param to auth group (read explanation below)
- Added new **week(w), lastweek(lw), lastday(ld), rating®** command parameters for !stats command
- Added new **ExcludeFromOneButtonMode** param to auth group to avoid being search when **UseOneAuthButton** is enabled
- Added new **dateFormat** param to Config section
- Added new **RatingModeChannelId** param to StatsModule and **IncludeInRating** param to Stats groups to autopost rating message
- Added optional **SkipDiscordAuthPage** param to auth groups to be able to store ESI token and skip Discord auth
- Added unit tests project
- Added means to counter Linux data location problems (explanation below)
- Added delete member buttons to HRM main page
- Added filters for member lists on main HRM page
- Added **UseDumpForMembers** and **DumpInvalidationInHours** params to HRM module config
- Added new Spies list for HR members. Dumped members can be marked as Spies to avoid being recycled.
- Added new SovTrackerModule (read highlight section below)
- Added new **clist** command to list contracts for specified group
- Added new simplified auth management file (read highlight section below)
- Added new auth param to use only one button for authentication **UseOneAuthButton**
- Added support for BR web compression
- Added **SpiesMailFeedChannelId** to be able to feed new mail for characters marked as spies
- Improved HTML templating and unified CSS+JS includes
- Improved auth process checks to go in the following order: char -\> corp -\> alliance
- Improved auth process checks to search criterias through several filters within one group (read explanation below)
- Improved auth checks to delete applying members with invalidated tokens
- Improved ZKB sockets cleanup and restart
- Fixed !stats d command to not include losses to npc
- Fixed type filtering for contracts feeder
- Fixed simplified auth empty line handling
- Fixed incorrect solar systems table name in some queries
- Simplified web server settings (read breaking changes below)
- Moved **Templates/Messages** templates to **Data** directory under Linux (read breaking changed below)
- Enhanced HRM module access options and security (explanation below)
- Removed Discord mention from language file entry **mailMsgTitle**
- Removed default text for **authPageHeaderText** language string
- Changed default MySQL collation to utf8mb4\_general\_ci
- Updated SQLite to work in WAL mode

### HIGHLIGHTS

- One auth button mode can be enabled by setting **UseOneAuthButton** param to true. In this case the bot will search for first group which satisfies member corp/alliance condition.  
There is also a change in auth process wotkflow which force users to authenticate twice if found auth group contains ESI permissions.  
In this case automatic redrects are used so user logs in once and select character twice.

- Added new SovTrackerModule which now allows to track sov space holder changes and ADM index falls beyond the threshold in the filtered sets of solar systems.  
Systems can be filtered by ID, holder alliance, region ID and constellation ID. All filters are ADDITIVE.  
!!!WARNING - this module can be very resourse consuming so please read folowing recommendations.

- Added an ability to read and inject authentication data from standalone file named **\_simplifiedAuth.txt**.  
This file holds auth data in a compact CSV-like manner which can be helpful for less IT skilled admins or people who manage access right quite often.  
In this file all entities are identified by names instead of numeric IDs which are then looked up on ESI during the bot startup.  
Specified auth data will be injected into auth groups during runtime. You can even end up with empty predefined auth groups in settings.json file.  
All fields are | delimeted, Discord roles are comma delimited.  
Format: Exact Alliance or Corp or Character name|exact auth group name from config file|Discord role1,Discord role2  
Example1: Starlane Limited|PrelimAlly|Members,[UF]  
Example2: Goonswarm Federation|GuestAuthGroup|GuestRole,TempRole

### NOTES

- **helpStat** language entry has been updated

### BREAKING CHANGES

- Auth process checks will now search criterias through several filters within one group by default. This means that the process will now gather all roles that match characters ID, corp ID and alliance ID in **AllowedCharacters, AllowedCorporations** and **AllowedAlliances** filters.  
New **UseStrictAuthenticationMode** param has been introduced which is false by default. When enabled it will force auth process to act as before and stop after the first matching criteria is found.

- Removed **WebListenIP** and **WebListenPort** params from **WebServerModule** config section. Internal port will now always be similar to **WebExternalPort** and internal IP address will now always be 0.0.0.0. This IP will force app under Linux and Windows to listen all local interfaces.

- The bot will now search for **Templates/Messages** templates in **Data/Templates/Messages** directory under Linux

- To counter multiple problems with config and logs location under Linux we now search all sensitive data under folder named **Data** in bot root directory.  
Sensitive data is represented by config file, db file and log files. Linux users now **should** use Docker **mount** and Linux **link** commands to mount  
**Data** folder into the app directory.

- Introduced **AccessLists** param for HRMModule which now allows advanced access distribution.  
Now you can:

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases/tag/1.3.3)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [March 12, 2019, 7:59pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/39 "2019-03-12T19:59:59Z")

</div>

### V1.3.4

- Added new **BindToMainCharacter** param to AuthGroups (read explanation below)
- Added new **IsAltUsersVisible** , **CanInspectAltUsers** and **CanRestoreDumped** params to HR module access list
- Added ability to restore members from dump in HR module
- Added new experimental !caps command to display capital skills stats throughout the members database
- Fixed corp and alliance data update in HR lists when users changes them
- Fixed contracts type filter
- Refactored authentication code to be more consistent with the modules
- Updated HR module to include Alt Characters information into general lists and char inspection page

### NOTES

- Added new mode for the authentication process called: Alt Characters Authentication! In this mode you can bind alt characters with custom ESI permissions to the already authed main characters. Alt characters are dependant from the main character i.e. will be deleted if main character auth is deleted. They can be inspected in HR module and will be a subject for a subset of some new Discord commands.  
When this mode is enabled it will always be treated as if **ExcludeFromOneButtonMode** and **SkipDiscordAuthPage** params are set to true  
Set **BindToMainCharacter** to enable this mode. Please take a look at the auth group named **Mode6\_AltCharactersAuth** in **settings.def.json** file for more info.
- Added new experimental **!caps** command to display information about capital ship drivers on channel/server.  
This command uses new settings section: **CommandsConfig** and new config file **shipdata.def.json** which will be automaticaly unfold into **shipdata.json**.  
**CapsCommandDiscordRoles** - list of Discord roles who has access to this command (empty = all)  
**CapsCommandDiscordChannels** - list of Discord channels where this command is allowed (empty = everywhere)

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases/tag/1.3.4)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [April 2, 2019, 7:50pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/40 "2019-04-02T19:50:39Z")

</div>

### V1.3.5

- Added spy mail feed filters by corp/alliance name and feed channel
- Added **DisplayDetailsSummary** param to display EVE urls in mail summary
- Added ability to auth timers module by Discord roles
- Fixed auth cleanup bug when where was an auth group in a list with empty Allowed\* fields (literally group allowed all users to auth)
- Fixed forbidden channels handling for commands
- Fixed radius kill feed with 0 system range paramater
- Improved and cleaned up Discord mail feeds, introduced new mail summaries with EVE fit & channel links into separate blocks to reduce clutter
- Improved text breaking logic to respect words and urls
- Improved **radiusKillFeedModule** to accept all IDs and names in a single mixed list
- Improved **timersModule** to accept all IDs and names in a single mixed list
- Improved **TED\_ConfigEditor** to correctly work with mixed lists
- Removed duplicate mails from spy feeds

### HIGHLIGHTS

Introducing global quality of life improvement - parameters which accept mixed arrays of IDs and names. Previously there was only strong typed arrays with faceless ID values.  
Now I will gradually update modules to accept both names and IDs in a condensed number af params. This will reduce clutter, improve usability and readability of config files.  
Before:

```auto
"accessList": {
      "UnitedFleet":{
        "AllianceIDs": [123],
        "CharacterIDs": [456],
        "CorporationIDs": [789,911]
      }
    },

```

After:

```auto
"accessList": {
      "UnitedFleet":{
        "FilterEntities": [123, "John Snow", "a:Goonswarm Federation", "c:Corporation"],
      }
    },

```

Note the **a:** and **c:** prefixes, they are needed to search for alliance or corporation. If no prefix is specified then system will search for character.  
Also not that system can search for corporations and alliances by TICKER!  
System, constellation and region names do not require prefixes as they’re unique by default.

### NOTES

- New **SpyFilters** config param in **HRMModule** section allows you to filter your spies output
- New **DisplayDetailsSummary** param for MailModule filter
- New **DisplayMailDetailsSummary** param for HRMModule filter
- Several notes about Spies HR improvements.
  - You can now disable default mail feed by setting **DefaultSpiesMailFeedChannelId** to 0.
  - You can selectively enable and redirect mail feed by adding filters to **SpyFilters** collection
  - New filters use EVE names instead of IDs which improves config readability while not impacting general performance
  - Mail now can display summary blocks after the message which include EVE urls for fits and channels. You can paste these urls into **EVE MAIL** body to become readable inside the game.

### BREAKING CHANGES

- Renamed **SpiesMailFeedChannelId** config param to **DefaultSpiesMailFeedChannelId**
- Removed **RadiusSystemId** , **RadiusConstellationId** , **RadiusRegionId** , **RadiusChannel** from **radiusKillFeedModule**
- Added **radiusChannels** and **radiusEntities** to **radiusKillFeedModule**
- Added **FilterEntities** , **FilterDiscordRoles** to **timersModule** access lists. Removed old parameters.

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases/tag/1.3.5)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Captain\_Panther](https://sea1.discourse-cdn.com/eveonline/user_avatar/forums.eveonline.com/captain_panther/32/368735_2.png) [@Captain\_Panther](https://forums.eveonline.com/u/Captain_Panther)\
**Post date:** [April 21, 2019, 1:25pm UTC](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213/41 "2019-04-21T13:25:11Z")

</div>

### V1.3.8

- Added new **ShowOnlyBasicDetails** param for contracts filter - display only condensed basic info
- Added new **RedirectByIdInDescription** and **PostToChannelIfRedirected** params for contracts filter - read WiKi on GitHub for details
- Added notifications: **MoonminingExtractionStarted, MoonminingExtractionCancelled, MoonminingAutomaticFracture**
- Added **AvoidDupesAcrossAllFeeds** param to ZKB settings to avoid dupe kills from all radius and live feeds
- Added vital characters cache update on bot startup/reload
- Added **showinfo** links processing in mail messages
- Added contract filter Discord channel validation
- Added **AllAnchoringMsg** notification processing for POS deployment
- Fixed some notification parsing
- Fixed Back urls in web interface
- Fixed auth roles assignment with one button mode and standalone buttons enabled
- Fixed **radiusKillFeedModule** constellation and region handling
- Automatic preliminary auth check now has 5 min delay timer

!!!Read updated Contracts FAQ for detailed description ([https://github.com/panthernet/ThunderED/wiki/Contracts-Feed-Setup](https://github.com/panthernet/ThunderED/wiki/Contracts-Feed-Setup))

### Breaking Changes

- Added new static **ZKBSettingsModule** settings section. Related ZKB parameters moved here: **zkillLiveFeedRedisqID, UseSocketsForZKillboard, ZKillboardWebSocketUrl**

> **[panthernet/ThunderED](https://github.com/panthernet/ThunderED/releases/tag/1.3.8)**
>
> Thunder EVE ONLINE Discord Bot. Contribute to panthernet/ThunderED development by creating an account on GitHub.

[Previous page](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213.md?page=1)

[Next page](https://forums.eveonline.com/t/thundered-powerful-eve-online-discord-bot-with-hr-and-notifications/74213.md?page=3)
