Giter Club home page Giter Club logo

opux's Introduction

Opux

Opux is a Discord bot for EVEOnline

This bot is currently under development and needs to run with dotnet SDK/Runtime. The following guide is a very short setup description. Complete documentation following soon™.

Features

  • Price check tool
  • Auth
  • Admin Reauth
  • Radius Killmails
  • Fleetup Operations Post
  • MOTD Pulling to channel
  • EVE Time Mod

For any further questions contact us on discord:

https://discord.gg/csc7HNM

Docker

An alternative to installing all dependencies locally is to use Docker Compose. The Docker Compose implementation will build an Opux image, start that as a container and link it with a MariaDB (MySQL) database container through a single command.

docker-compose up

This implementation requires the existence of a settings.json file in the same directory as you run the command from that it maps into the Opux container. It will also map a logs directory that contains all the log information normally generated by Opux. Finally, it utilizes a Docker volume and healthcheck for cross-platform compatibility and controlled startups, respectively.

opux's People

Contributors

broodlk avatar dependabot[bot] avatar disrvptor avatar jimmy062006 avatar maxcraft90 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

opux's Issues

Systemd_Support 100% cpu

Hi there,

by activating the Systemd_Support the bot needs 100% (one cpu) to run. If I disable it the bot needs the usual cpu power.

Add enhanced logging

Logs need to be written to separate logfiles. Makes support somewhat less painful.

!auth and mention

Would be great if it is possible to mention someone using the !auth command.

E.g. if someone asks how to auth anyone can write "!auth @username" which is posting the auth as if the user "@username" posted "!auth" directly.

Notifications Fail with the following error

12/19/17 8:55:34 PM [ Error]: Non-negative number required.
Parameter name: count
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: count
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List1.RemoveRange(Int32 index, Int32 count) at EveLibCore.EveLib.<GetNotificationText>d__29.MoveNext() in /home/ubuntu/Opux/src/Opux/EveLib.cs:line 97 12/19/17 9:09:44 PM [ Error]: Non-negative number required. Parameter name: count System.ArgumentOutOfRangeException: Non-negative number required. Parameter name: count at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at System.Collections.Generic.List1.RemoveRange(Int32 index, Int32 count)
at EveLibCore.EveLib.d__29.MoveNext() in /home/ubuntu/Opux/src/Opux/EveLib.cs:line 97

Public Killmails

Looking at adding killmail posting support for ONE Corp/Alliance to the public bot.

Adding this here so I dont forget and for feedback on the matter.

Corp/Alliance Roles Randomly removed

I am having an issue where the roles are being removed for corp and alliance at different times usually just once a week.

I checked my server metrics and it was not an issue there.

The logs just show that it removed roles and users reauthed or the !reauth was used to restore user roles.

Feature Request - 'Filtered Radius' tracking kills in range x filtered by (any attacker with x ship group)

Hi

Could you please add an additional function wherby the bot will report the victim if the loss mail has a particular ship type on it. Similar to how the 'Radius' function allready works but with an additional filter perameter of the attackers ships.

For example:
Any victim within {range} jumps of {target system} dies && loss mail contains the ship group ID {groupID} eg '/group/898/'

Please and Thank you!

XML to ESI Conversion

Convert remaining XML functions to ESI

TypeName
CharacterName
NotificationTexts
Notifications
ChatChannels

and remove EveLib.cs

Feature Requests

Use this ticket to leave feature requests only.

No support questions.

Notification characterID

CharacterID is only defined once making multiple API keys useless with out also setting there CharacterID

Wake up bot

Hi, this may not be an issue, but not really sure where to ask..
How do I wake up this bot?
I have it installed, it worked fine, then now it doesn't
Discord

Jabber

Would it be possible to have more than one jabber-account on the bot?

(Writing this here since the question gets lost in the supportchannel)

Translation of authentication webinterface

Hello,

we have some members which (for any reasons) do not speak english. So my question is if it is possible to extract the webinterface textes that everyone is able to translate them?
(e.g. in a translation json file)

TeamSpeak 3 Support

I'd like a show of hands for support of Teamspeak auth module.

The way this would work is the user would be asked to set there nickname to there in game name and then type !ts3 in discord. This would then check they are authed on discord and then assign there TS3 user permissions and store any relevant teamspeak details for role removal at a later date.

Discord WebSocket Check

Client can become disconnected if there is an API Issue.

Write a delayed timer to check we are connected and if not address the issue

System.NullReferenceException

Hello,

I updated the bot to the current version. As the config file changed I copy/pasted each setting value from the old one to the new one. But now if I start I get this error:

10.01.18 15:01:12   [   Error]: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
   at Opux.Program.<MainAsync>d__32.MoveNext() in /home/stefan/Opux/src/Opux/Program.cs:line 99

The part of the code tries to read the "token" from the "config" part. But it seems something is going wrong.

The beginning of my settings.json (for security reasons I removed the bot token itself):

{
  "config": {
    "token": "BOT_TOKEN_FROM_DISCORD_APP",
    "name": "Opux",
...

Can you help me getting it running again please?

Auth not possible using e.g. Opera or Chrome

Hi there,

some users reported, that they are not able to authenticate using chrome. I checked that and all I got was the source code of the page instead of the page itselfe. Can you please check that?

Screenshot:
grafik

Basics Metrics Addition

I'd like to add some really really basic metrics to to Opux so that I can see the amount of active Bots there are. I don't however want to add it without first consulting you guys that do actively use it.

The idea is that once a day Opux will access a webpage and send a small non-identifying string this string will be set when you first start the bot and not contain and data or encrypted data it will merely be a random string to identify your client so that it is not counted twice and allows multiple clients.

This is only because I'm interested in the amount of people using Opux.

Please leave you opinions below.

Wiki: third number for linux to start (using systemd)

If you want you can add my systemd solution to your wiki for linux installations (at the most bottom):


Number 3:

Using systemd your are not able to run the bot using 'dotnet run'. So you have to generate a start and stop function (if you host multiple bots be sure the "opuxbot" in all scripts match exactly one bot and not multiple bots!):

Start (be sure to insert both lines!):

#!/bin/sh -
/usr/bin/screen -A -m -d -S opuxbot bash -c 'while true ; do /usr/bin/dotnet run --project /path/to/your/bot/folder/Opux/src/Opux/Opux.csproj -- ; done'

Stop (be sure to insert both lines!):

#!/bin/sh -
/usr/bin/screen -X -S opuxbot quit

SystemD part:

[Unit]
Description=OpuxBot
After=network.target

[Service]
WorkingDirectory=/path/to/your/bot/folder
ExecStart=/path/to/the/start.sh
ExecStop=/path/to/the/stop.sh
Type=oneshot
User=username_to_run_under
#Group=groupname_to_run_under_optional
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

32 character limit

There needs to be a 32 character limit for nicknames for the forced nicknames on discord and teamspeak

Possible defect - Discord Link Preview turned off, no fleetup info displayed

If you go in to Discord Settings -> App Settings -> Text & Images -> Link Preview and turn this option off, all the Fleetup notifications are reduced to a single line each (the html preview is hidden), but there is nothing displayed besides the bot name. I believe there should be a hyperlink that users can click on to launch the html view in to external browser.

Welcome message too fast

We have an entry channel which is only for authentication. To prevent unknown users from syping this channel we disabled the history.

Some users now told us, that they haven't get any welcome message at all. Maybe the bot was too fast by posting the welcome message?

So for me it would be great to be able to add an delay in seconds for the welcome message (e.g. 5 seconds).

Enhancement Request - Limit Fleetup notifications and/or reverse sort order

With the new format of the fleetup notifications, there are about 3 notifications on the screen. Currently we have over 12 ops in fleetup, so we have to scroll back about 4 screens to get to the "next" op, as the next op is the first one in the list. Would it be possible to limit the number of fleetup notifications when using !ops, either by count (ie: 3) or by time (only next 24 hours). Another idea would be to reverse the order so the furthest fleet is listed first, and the nearest fleet is last. That way the users don't need to scroll to find the next fleet. Another variant would be !op which only displays the next op, not all of them, but I still think limiting and/or reordering would be a good idea.

If you accept patches, I could work on some and submit for approval.

WS4NetCore Windows 7 support

Windows 7 support will be removed 14 days from this issue being opened.

If your using windows 7 you will need to upgrade to a more modern OS.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.