Git Product home page Git Product logo

webdev-support-bot's Issues

Channel Management Feature

Problem

When attempting to communicate the purpose of channels in a message, only one user is able to maintain the list as it evolves. This causes either an undue burden or an outdated channel list depending on the motivation of the original poster.

Solution

Develop a module that keeps track of channel names and their respective descriptions and category. The module will then have the ability to post to a channel, designated by a settings command, the current channel mapping.

Questions

  • Can the bot collect the current existing categories and channels and populate the list of categories and channels when first added to a server?

Requirements

  • As an administrator, I can create new channels.
  • As an administrator, I can create new categories.
  • As an administrator, I can associate channels with only one category.
  • As an administrator, I can associate a description property to a channel.
  • As an administrator, I can set the channel that I want to output the channel list.
  • As an administrator, I can prompt the bot to make a new post that outputs the channel list in the specified format below.
  • As an administrator, I can edit an existing channel to give it a new description or associate it to a different category.

Format

Category

#channel-name: channel_description_copy
#channel-name-2: channel2_description_copy

Category 2

#channel-name-3: channel3_description_copy
#channel-name-4: channel4_description_co

When a user requests !leaderboard provide the user's position and points

  • If the user is in the leaderboard, bold the entry.
  • If the user is outside the leaderboard, provide their position and points.

Ex:

  1. Gerrit - 4999 points
  2. Naito - 600 points
  3. Kenny - 589 points
  4. ...
  5. ...
  6. ...

Ex 2:

  1. Gerrit - 4999 points
  2. Naito - 600 points
  3. Titan- 589 points
  4. ...
  5. ...
  6. Ox
    --
  7. Kenny - 2 points

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update dependency dotenv to v16.0.3
  • chore(deps): update dependency husky to v8.0.2
  • fix(deps): update dependency compare-versions to v4.1.4
  • fix(deps): update dependency date-fns to v2.29.3
  • fix(deps): update dependency discord.js to v13.12.0
  • fix(deps): update dependency node-html-parser to v5.4.2
  • fix(deps): update dependency typescript to v4.9.3
  • chore(deps): update jest monorepo to v29 (major) (@types/jest, jest, ts-jest)
  • chore(deps): update node.js to v18 (node, @types/node)
  • fix(deps): update dependency compare-versions to v5
  • fix(deps): update dependency discord.js to v14
  • fix(deps): update dependency node-html-parser to v6
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/deploy.yml
  • actions/checkout v3
  • akhileshns/heroku-deploy v3.12.12
npm
package.json
  • @mdn/browser-compat-data 5.1.3
  • @sentry/node 7.3.1
  • compare-versions 4.1.3
  • cross-env ^7.0.3
  • date-fns 2.28.0
  • discord.js 13.8.1
  • dom-parser 0.1.6
  • domyno 1.0.1
  • fuse.js 6.6.2
  • html-entities 2.3.3
  • lodash-es 4.17.21
  • mongoose 6.4.1
  • node-cache 5.1.2
  • node-fetch 3.2.6
  • node-html-parser 5.3.3
  • ts-node 10.8.1
  • typescript 4.7.4
  • @sentry/types 7.3.1
  • @types/dom-parser 0.1.1
  • @types/html-entities 1.3.4
  • @types/jest 28.1.3
  • @types/mongoose 5.11.97
  • @types/node 18.0.0
  • @types/node-fetch 3.0.3
  • dotenv 16.0.1
  • eslint 8.18.0
  • eslint-config-galex 4.1.4
  • husky 8.0.1
  • jest 28.1.1
  • lint-staged 13.0.3
  • nodemon 2.0.18
  • prettier 2.7.1
  • ts-jest 28.0.5
  • node 16.15.0
nvm
.nvmrc
  • node 16.15.0

  • Check this box to trigger a request for Renovate to run again on this repository

Points: prevent gaming by liking own comments

If I go to any old comment that I made and I ๐Ÿ‘ it myself, I still get points for the helpful role and it would be hard for anyone to notice.

If I do it 10 times, I will award myself the role.

Add onboarding copy to alerts for new users

When a points-awarded message gets sent, include the following text to encourage new members to participate.

Thank a helpful member by replying "thanks @username" or respond to their message using one of the emojis listed in #rules."

Use similar implementation as the image below:
image

feat: Sticky Messages

Currently we're using dyno to repeatedly post messages every X hours. This can be kinda spammy.

A better method for this could be done by deleting the previous version of the message and posting a new one after X number of messages, so that there is only one version of a message at any one time.

e.g Job posting sticky is always reposted after a new job posting

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

Point Set Command

An admin command that allows a user to set the points of another user. The required input is the command, the user tag, and an integer.

Ex: !points set @username 23

The command should remove or add the role, as appropriate.

feat: Modmail

We're currently using a third party tool for modmail, there's some issues people have with needed to discord auth with it as it's on multiple servers. If we fold this into our own bot this no longer becomes a requirement. Modmail channels should also be threads so they don't get lost and can be searched.

Also add in ability to easily report messages and users from a context menu would be possible.
Also automate certain common actions mods take (purposely vague)

Point Decay Module Expansion

When a user hits the points that sets the Helpful role, they can automatically decay out of the role based on the 24-hour timer that is set. In order to avoid this, we want separate triggers for role assignment and unassignment.

Role Assignment: 20 points
Role Unassignment: 16 points

This allows at least 3 days for the user to maintain their role before being demoted.

Points Cooldown

When user A awards a point to user B, user A should not be able to award additional points to user B for a set duration. This discourages abuse. Perhaps start with a 30-minute cooldown?

feat: Starboard

Allow users to "star" a message, messages with X amount of stars can then appear in a starboard

How

  • User stars a message, once X stars have been reached
  • If no starboard thread has been created, create new starboard thread and pin it
  • Add message to the starboard.

!command\n crashes the bot

writing !mdn Proxy will run fine but

!mdn
proxy

will cause the bot to crash due to the keywords and the regex not lining up

[info] add server id to logs

seeing many channel #moderator-log does not exist on this server in the heroku logs and would like to make whoever is using the bot aware of that

Update onboarding copy

Above If you agree to these guidelines, type ok. If not, or you want to exit the form explicitly at any time, type cancel. Add the following copy:

If your compensation is deemed unfair by the moderation team, your job posting will be removed.

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.