Insight [v1.3.0] - Visual killboard and radar streaming for Discord

bots
esi
tool

(Natuli) #1

Insight provides live killmail streaming for Discord. Insight can stream personal or corporate killboards, detect supercapitals with a radar feed, display nearby PvP activity, and more! Killmails and intel are presented in Discord rich embeds containing relevant links and images to quickly identify and access important information.

This Discord bot features an intuitive interface for creating, modifying, and managing isolated feed configurations through simple commands and text dialog.

Insight is available publicly hosted or for self-hosting.

Links

GitHub project repo

Insight public bot invite link

Feed creation is simple and self-explanatory after inviting Insight to your server. Run the !create command to begin setting up a feed in your channel of choice.

Feature Overview

  • Entity feeds ideal for personal, corporate, or alliance killboard streaming.
  • Capital radar feeds ideal for tracking hostile incursions into friendly space, hunting expensive targets within jump range, or detecting capital escalations in real time.
  • Proximity watches ideal for finding potential fleets to fight, tracking hostile fleet movement within your region, or alerting you of nearby hostiles within a few jumps of your base systems.
  • Preconfigured feeds offering custom spins such as: Alliance Tournament system feed, npc officer hunter, AT ship radar, and more!
  • Rich embeds to present mails with color indicating sidebars, hyperlinks, and images.
  • Multiple embed appearance styles varying in size and verbosity.
  • Optional mention system to be alerted of activity in radar feeds.
  • SSO token authentication for allied contact blacklisting in radar feeds.
  • Automatic synchronization of SSO tokens and radar blacklists.
  • Instinctual commands and convenient option dialogs for managing settings.
  • Easy server setup with no hardcoding or confusing configuration.
  • Simultaneous, isolated feeds across multiple servers.
  • Efficient asynchronous design with minimal cpu, memory, disk, and network impact.

FAQ

How do I invite Insight to my Discord server?
You can invite Insight to any server where you have the Manage Server role. Use the invite link in the above link section, select the server, and Insight will be invited.

What permissions does Insight require?
Insight requires the folowing channel permissions:

  • Read Messages - Allows the bot to read command events.
  • Send Messages - Allows the bot to communicate and display prompts to users running commands.
  • Embed Links - Allows the bot to post Discord embedded content containing images (ship renders, player portraits, corp/alliance logos) and hyperlinks (zKillboard and Dotlan).
  • Mention Everyone - Allows the bot to optionally mention @ here or @ everyone for capital radar alerts.

How do I set up a new feed and manage its settings?
Creating a feed is as simple as running the !create command and following the dialog prompts to select a type.
Running the !settings command allows you to modify feed configuration and behavior.

What’s the difference between hosting Insight myself and using the publicly hosted bot?
Functionally, there is no difference. Insight is designed to support simultaneous feeds across multiple servers with no configuration hardcoding.
Insight provides an isolated service to each Discord channel, separate from the modification or access of other channels/servers.

Operationally, the publicly hosted bot runs on dedicated, secure hardware to provide 24/7 service and reliability. The publicly hosted bot runs the main branch and is updated, maintained, and secured seamlessly.

How do I run more than one feed service?
Insight can only run one feed service per Discord channel. Add more text channels and create a feed service in each.
Note: Insight does not support feeds in direct messages or conversations.

How do I add, manage, or remove one of my previously added SSO tokens?
Direct message the bot with the !sync command and select an option. You can always revoke tokens under third party applications.

How do I host Insight myself?
Download the latest release archive from the repo’s releases page for either Linux or Windows, unzip the file, and follow the instructions in Installation.md.
There is also a source installation guide in the GitHub wiki for running Insight on a Python interpreter with any operating system (including Mac).

How can I be notified of updates?
Insight’s Watching CPU:15% MEM:1.0GB status will change to Watching Update available. The program console will display messages directing to the latest release.

I have an unanswered question, want to request a feature, need help with installation, or report a bug.
Feel free to join me on the project’s Discord server linked in the project repo.

Commands

!about
Display Insight credits and version information.

!create
Begin setting up a new feed service in the channel.

!help
Display information about available commands.

!remove
Delete the currently configured feed service in the channel.

!settings
Modify feed settings and behavior.

!start
Start/resume a channel feed from being paused.

!status
Display information about the currently running feed.

!stop
Pause a channel feed.

!sync
Manage EVE contact tokens for a radar feed.

Gallery


An entity feed tracking kills and losses for the alliance Northern Coalition using the Compact appearance.


A radar feed displaying recent universal super activity using the Compact appearance.


A proximity watch feed displays a nearby gate camp 10 jumps from a staging system using the Utility appearance.



I hope this project is useful and enjoyed by the EVE community. I appreciate all criticism and suggestions. :smiley:


(Ikki Phoenix) #2

Interesting. Is there a radar feed for sub capital ships?


(Natuli) #3

Not currently, but it will be an upcoming feature.


(Ikki Phoenix) #4

Any ETA? I would definitely be interested in testing this bot when the sub cap radar is in.


(Natuli) #5

Sorry for the delay in response.

Just to give an update, here is the current roadmap:

v1.1.0 (completed and deployed)

  • Rich embed appearance changing through the !settings command for all feed services.
  • New capital losses preconfigured feed type - Posts all super and capital losses.

v.1.2.0 (completed and deployed)

  • Minimum ISK value filter for entity feeds modifiable with !settings. (completed and deployed)

Upcoming/in progress

  • New base feed type: Intel feed
    • Similar appearance to capital radar feeds. Displays overview of ship count, attacker affiliation breakdown, location, etc. (1-3 days)
    • Tracks all ships instead of subset (as in capital radar feeds). (1-3 days)
    • Regional, base system, or live follow modes:
      • Multi region watch that will display all hostile activity in set regions. (1-3 days)
      • Base system mode that tracks activity within set number of gate jumps from base systems. (2+ weeks)
      • Realtime follow/roaming mode that displays an overview of recent killmails within set gate jumps of pilot’s location using a location token. (2+ weeks)
    • Blacklist syncing as in capital radar feeds. (1-3 days)

The intel feed, up to system and live follow modes, is pretty simple to implement and I see it being partially completed and deployed within the next few days.


(Natuli) #6

v1.2.0

Insight v1.2.0 introduces the new proximity watch feed for detecting all hostile activity within set gate jump ranges. This release includes a new route mapping module that determines the shortest route length between all systems. The binary release is available for Linux and Windows under releases.

New features

  • Entity feed
    • Users can now set a minimum ISK value filter.
  • Radar
    • Users can specify custom type/group tracking in addition to supers, caps, or blops.
  • Proximity watch
    • A new feed type designed to track hostile activity within systems, constellations, or regions. This feed can also detect activity within a set jump proximity of base systems.
      The feed is capable of syncing ignore lists with tokens to ignore exclusively friendly mails.
  • Preconfigured
    • Added options
      • Some options available to base feeds are now optionally available for configuration in derived feeds. Examples: maximum timeout, minimum ISK value, etc.
  • SDE/data
    • Market updater
      • Updates average prices on bot startup for ships.
    • Stargate/routing module
      • Gate jump distance calculation has finally arrived to Insight. The routing module calculates and caches the distance between all systems for use in gate calculations.

Changes

  • Feed creation
    • Option order should flow better when creating feeds.
  • Preconfigured
    • Discontinued the Alliance Tournament system stream until next year.
  • Appearances
    • All radar embeds now list the gate jump distance in the footer.
    • Radar Full appearance positioning and verbosity has been modified to reduce space and provide a cleaner interface.
    • Renamed functional appearance to utility.
    • Add truncating to ship/affiliation overviews.

Technical

  • Routing module
    • The route caching module increases the memory footprint of Insight by 500MB when all systems are loaded. Ensure your server is capable of handling this additional requirement.
  • Updated requirements.txt
  • Extensive changes to visual embed variables and function calls for easier code navigation.

v1.1.0

New features

  • Settings
    • Rich embed visual switching
      • Rich embed presentation can be modified for all feed services by using the !settings->Change visual appearance option.
  • Preconfigured feeds
    • New capital losses feed type - Posts all super and capital losses.

Bug Fixes

  • Token pilots who switch corps won’t have their alliance contact syncing dropped if they remain in the alliance.

Changes

  • Tokens without any tracked contact type (pilot, corp, and alliance are all set to ignore) are now automatically removed from channels and deleted from the database.
  • Added the -defer argument to prevent contact syncing from running when the bot starts. Contact syncing now runs on startup by default.
  • Added a View tokens option to radar feeds to see all linked tokens in the channel.

(Natuli) #7

v1.3.0

v1.3.0 is the latest update to Insight which includes numerous backend improvements for further application stability. This update features the new “Big Kills” feed type and the !lock command for feed modification control. Also, the new !admin interface which allows Insight hosts to backup the database, reboot/shutdown the application, and update the application automatically via Git all from within Discord. The binary release is available for Linux and Windows under releases .

New features

  • Added a “Big Kills” feed that displays all mails valued greater than a customized minimum ISK value.
  • WebSocket streaming via the -ws flag as an optional method to obtain mails.
  • Framework for multiple utility type commands which will expanded upon in later updates.
  • Mention modes for all feed types with customizable time limits.
  • The !lock command which prevents feeds from being modified from unauthorized Discord users lacking channel permissions. (#13)
  • Option panes now use Discord rich embeds offering better experience and support for option text exceeding the 2000 character limit.
  • The !8ball utility command.
  • Insight can now be cleanly shut down via CTRL-C or a Discord command.
  • The !admin command interface which allows Insight administrators to access the following functionality:
    • Shutdown or reboot the Insight application
    • Name resetting to clear and repopulate all cached names in the database. Characters, corporations, etc.
    • Database and log backup into zip archives.
    • Update patching (for Git installations running on the Python interpreter) and automatic reboot/reload.
  • Multiple minor adjustments to visuals and text refactoring.
  • Welcome message when Insight joins a new server. Insight now offers a helpful greeting to the public channel of new servers with basic command usage.
  • New scripts for easier setup and installation on Linux systems.
  • Numerous improvements to core stability.

Changes

  • The AT ship radar feed type has been removed. The functionality of this feed has been merged with the full Capital Radar feed service offering extended functionality. (base systems, timeouts, etc.) Existing AT feeds are automatically converted when Insight starts.
  • The “currently watching” status message has been changed to include the current number of feeds.
  • Insight now sends more detailed header information to zK and ESI. Including the Git URL and optional ‘from’ email.
  • Mails less than a minute ago will output the time in seconds.
  • Contact syncing now runs every 3 hours.

Fixes

  • SSO tokens randomly raising 4xx errors are not immediately dropped. ESI would sometimes raise error 400 on a valid token when the service was experiencing issues and then return 200 later. Insight now has an error counter and drops tokens after a consecutive number of error 400s.
  • Some tokens would have a specific type (alliance, corp, pilot) dropped on error 403. Error 403 signals the token owner leaving the alliance or corp, no longer having access. Error 403 was raised in rare instances of service outages. Further inspection of the error message ensures these random drops do not occur.
  • A race condition was fixed which allowed users to create 2 feeds in one channel with the last feed overwriting the first.
  • Insight now attempts to resend mail messages if it fails due to error 5xx or socket error.
  • Fixed an issue affecting RedisQ polling and VMware based hosts.

(Kiera Oramara) #8

@Natuli Can we/i get the Input/Search (system, constellation, or region) option from “Proximity Watch” into “Entity Feed” plz


(Natuli) #9

@Kiera_Oramara
As in show all kills from a region, system, etc or do you mean filter the entity feeds to show kills from entities only occurring within a region/system?

The former is achievable by setting the appearance mode in proximity watches to Entity-like compact where all kills occuring in a selection of region or systems appear as if they were coming from an entity feed.


(Kiera Oramara) #10

yep that