Giter Club home page Giter Club logo

geobot's People

Contributors

dependabot[bot] avatar geotim90 avatar yofou avatar

Stargazers

 avatar

Watchers

 avatar

geobot's Issues

Implement "dev" mode

Add a config option to force the bot to only respond to the bot admin. This way the prod and dev versions of the bot can run side-by-side without affecting normal users.

Report is too long

If the contents of the report is too long, not all important information is visible. Geobot needs to either send multiple messages or offer a way to execute each of the four reports separately.

get member joined always returns undefined

The bot does not initialise the "joined" value when a role is added to "initiate".

The bot does not initialise the "joined" value when a matching role is assigned to a (new) member.

Bot crashes on "report" command

2019-02-15T23:03:22.237Z [COMMAND] {guild=339376682274127874|message=54610426143
2442892} "report"
/home/geobot/geobot/index.js:291
                    report4 += `\nโŒ **${getName(member)}** (${member.id}) Joined: ${formatDaysAgo(joined)}`
                                                                                                  ^

ReferenceError: joined is not defined
    at doReport (/home/geobot/geobot/index.js:291:99)
    at onReport (/home/geobot/geobot/index.js:213:9)
    at Client.onMessage (/home/geobot/geobot/index.js:83:17)
    at Client.emit (events.js:197:13)
    at MessageCreateHandler.handle (/home/geobot/geobot/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (/home/geobot/geobot/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:103:65)
    at WebSocketConnection.onPacket (/home/geobot/geobot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (/home/geobot/geobot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)
    at WebSocket.onMessage (/home/geobot/geobot/node_modules/ws/lib/event-target.js:120:16)
    at WebSocket.emit (events.js:197:13)

Feature request: Notes

Moca requested the ability to add notes per guild member that would only be available to mods and admins. This is a first second third draft of a concept for this feature.

Concept

Mods and admins can add notes on individual guild members. A note is either public, shared or private. Public and shared notes are visible to all mods and admins, but only public notes appear in a user report. Private notes are only visible to the author (via DM). Only the author of a note or an admin (in case of public or shared notes) can delete an existing note.

Each note can be up to 100 characters long. Each author can store a maximum of 10 notes per guild member. The maximum number of public and shared notes per guild member is 10 each.

Each note is stored as a part of the data of a guild member in the database together with a reference to the author and the message ID and timestamp of when the note was added. All this information should be output when displaying the notes for a guild member.

Public notes will be included in report username. Public and shared notes will be output as a response to a get member public note or get member shared note command. Private notes will be DM-ed to the author upon a get member private note command.

Commands

  • @Geobot add member shared note Alice requested extended leave until June adds a shared note for "Alice" with the text "extended leave until June"
  • @Geobot add member private note Bob likes unicorns adds a private note for "Bob" with the text "likes unicorns"
  • @Geobot add member public note Dave aka. David add a public not for "Dave" with the text "aka. David"
  • @Geobot get member shared note Alice outputs all shared notes stored for "Alice"
  • @Geobot get member private note Bob DMs all private notes stored for "Bob" by the author
  • @Geobot get member public note Dave outputs all public notes stored for "Dave"
  • @Geobot get all shared note leave outputs all shared notes containing the term "leave" in the text
  • @Geobot get all private note unicorn DMs all private notes by the author containing the term "unicorn" in the text
  • @Geobot get all public note aka outputs all private notes by the author containing the term "aka" in the text
  • @Geobot remove member shared note Alice 266241948824764416 deletes the shared note for "Alice" with the matching ID or timestamp

Replace "joined" in guild report sections 3 and 4

The "joined" information for inactive guild members in the guild report is not very helpful. The report should provide an overview of the member activity.

For the "Members that are completely inactive" section, the report should include the most recent activity.
For the "Members that are partially inactive" section, the report should include the least recent activity.

Review technology stack

discord.js and node.js are fine and all, however the lack of a strongly typed language is hurting development. I should migrate the bot to a Java stack (since this is the language and technology I am most familiar with).

Expand "mod" commands

All "get" commands that contain information visible in the reports should be accessible to users with a mod role.

Roles are "forgotten"?

Apparently role IDs within a guild can change. These changes need to be taken into account by the bot!

Implement online help

Geobot should accept a parameter in the help command and give instructions on how to use said command or feature.

E.g. @Geobot help roles -> how roles work
E.g. @Geobot help set role -> how the set role command works

Of course, only features the author has permissions for should be explained. Otherwise the bot should point out the missing permissions. Nevertheless, help will only work for mods and admins.

Icons in `report member` should be reviewed

The question mark icons in individual reports make little sense. Even if a guild member is not a "member" by role, the activity timeouts should still work the same as if they were, for the purposes of an individual report only. The guild report should still take roles into account.

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.