Giter Club home page Giter Club logo

carberretta's Introduction

Welcome to Carberra Tutorials!

Regardless of whether you're a budding programmer or an avid computer user, this is the place for you.

All series, ordered from newest to oldest (entries without a link do not have a repository associated with them, or the series or repository have become obselete):

Check the pinned repositories for other open-source projects central to Carberra.

The series repositories are only designed as a supplementary aid, and you should watch the tutorials before attempting to clone them. Feel free to join the Discord server if you have any questions. Every repository distributed under the name "Carberra" or "Carberra Tutorials" is distributed under the BSD 3-Clause License, unless otherwise specified.

carberretta's People

Contributors

aoi-yuito avatar coler6 avatar ikbenolie5 avatar johnnyjth avatar jonxslays avatar mrdogebro avatar mshaugh avatar nereg avatar parafoxia avatar tandemdude avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

carberretta's Issues

Prevent timed out cases from being moved to unavailable

Timed out cases currently don't get treated differently to closed cases, which has proved rather an issue.

  • Indicate to the close routines whether a case timed out or was closed
  • Move to available if timed out
  • Otherwise use same check to determine destination
  • Perhaps implement some other logic to make sure the channel numbers remain consistent

The open command is causing confusion

Some people have though it's the way to open a support case, when it actually reopens a previous one.

  • Remove the open command invokation and just call it reopen.

Support case analytics

On top of fixing other problems, the planned solution allowed for basic support case analytics to be tracked, such as who opened the case, when it was closed, and who was involved.

Starboard

Starboard

Features

  • One star sends the message to the starboard
  • Messages on the board have up/down vote reactions
  • Messages with a poor ratio will be removed

Add timed closes for cases

Add the ability for a helper or mod to be able to add a close timer to a support case. This is similar to the timeout feature but it would allow the case to actually close instead of timing out. If the user responded after setting the close timer it would stop the timer and not close the case, else it would be closed after the set amount of time.

The ability to do this would allow a helper to not have to close a case immediately while still being able to go help another case without having to remember to come back and close this case in x mins. This is not a necessity but would be a nice feature to have when helping people out in support cases.

Example

  • I give a user a solution that should work but want to give them time to ask more questions if they need or it doesn't seem to work. The timed close would allow the helper to say close the case in 10 mins if the person who opened the case does not respond. This allows the helper to know that the case will be fully closed because in 10 mins (or however long the helper sets) they would have responded if they had any issues but they did not, meaning the case can be closed as it is deemed solved.

Features

  • Add ability for helper to close case in x mins
  • Allow client to respond to stop timer
  • Make notification in chat that timer has been stopped and case re-opened (or something like that)
  • Ping helper who time closed case if client responds (possibly โ€” maybe in same message as above)

Logging

Logging

Features

  • Member nickname changes
    • Old nickname
    • New nickname
  • Member role additions and removals
    • Role that was added/removed
    • Perhaps the total number of roles
  • User avatar changes
    • Old avatar (as thumbnail)
    • New avatar (as image)
  • Message edits
    • Author
    • Old content
    • New content
    • Include attachments, media, etc.
  • Message deletions
    • Author
    • Content
    • Deleted by (via audit log)
    • Include attachments, media, etc.

A system to auto-assign helper roles based on topic

This would be in two stages:

  1. A real-time system that looks at patterns and works out appropriate roles based on where the helper was active.
  2. A command, in which a member is granted Helper (and Staff), and the cases they previously helped in are analysed, and roles are provided based on that.

A system to bind a member bot to its owner

  • Probably +bind or +bindbot.
  • Carberretta would update the bot nickname based on nickname changes of it's owner (and hopefully a username change in the bot)
  • Carberretta would kick a bot if its owner left
  • Would provide a simpler interface to determine bot owner info. Maybe +memberbotinfo or something (probably shorter than that)

User-Lookouts

Add a command to add a person to a user-lookouts database. This database would most likely include their username (of course) and the reason as to why they should be looked out for. Each time a person joins the server, the bot will look to see if they are on the lookouts list and a notification message will be sent to one of the moderator channels. Also add a command to check the entire server's members against the database to see if someone who is already joined is on the list. Of course add support to remove users from the list, however, I do not think this list should be open to the public like the warns system. A person should not be able to see if they are on the lookout list and nothing special will happen to a person who joins if they are on the list.

Opt System

Opt System

Features

  • Opt in or out of certain roles
  • Start with Videos and Announcements

Commands

  • TBD

Spam Filter

Spam Filter

Features

  • Prevent mention spam
  • See tutorials for reference implementation

Reintroduce support voice channels

This would be done more dynamically than before:

  • A participant in an occupied channel would use a command to create a new support voice channel.
  • This channel would be deleted once the case was closed.

A binify command

  • Scan messages for code blocks and convert them to MystBin links (like the redirect command).
  • Take attachments and attempt to do the same (check if it's a text format).

Support channels can "die"

Cause believed to be a lack of handling for unavailable channels on boot, causing them to not be properly initialised.

Poll System

Poll System

Features

  • Polls should be stored in case of bot shutdown
  • End time should be shown
  • Automatic result announcement
  • Duplicate votes should be removed, unless explicitly allowed

Restructure and Formalisation

This will include proper information regarding the bot, including a set of instructions for contributing to Carberretta.

Giveaway System

Giveaway System

Features

  • One reaction, which members use to enter
  • At the end, valid member is chosen at random
  • Automatically announce the winner
  • Role-based weighting as an option

Session Support

Session Support

Features

  • All channels start in available pool
  • Channels move to in use when in use
    • Triggered by a message in an available channel
  • Channels marked as available after command, or after period of inactivity
    • Considerations:
      • Should inactivity only kick if all channels are in use?
  • Create new channels as demand requires
    • Considerations:
      • Scale to guild members?
      • Scale to helpers?
      • Maximum limit of support channels
      • Create new channels if all in use, within limit?

Commands

  • done: moves channel back into the available pool
    • Only usable in "in use" channels
  • call: calls for help
    • Only usable in "in use" channels
  • lock: locks a channel down to select members/roles
    • Remains locked until explicitly unlocked or channel times out
    • Only usable in "in use" channels
  • unlock: unlocks a channel
    • Only usable in "locked" channels
  • save: saves previously sent messages
  • recall: recalls a saved message

Colour Reactions

Colour Reactions

Features

  • Similar to how it has been done in the tutorials, by perhaps utilising the database
  • More colours
  • Reaction removed as soon as colour is applied to keep it clean and quick

Implement RTFM to replace R.Danny

R.Danny is not verified, which means it will be limited to a single shard, which can cause the bot to stop working in the tutorials guild.

A replacement will be required, along with the other functionality of the bot such as Tags and Starboard

Profanity Filter

Profanity Filter

Features

  • Filter profanity
  • Ability to adjust strictness
  • See tutorials for possible implementation

Update help command

Now Carberretta has the Solaris menuing system, it can take on the Solaris help system too.

Limit certain commands to certain channels

Certain commands should only work in specific channels.

  • Default as bot usage channels only.
  • Support commands only in support channels.
  • Mod commands everywhere, though Solaris covers most of that.
  • Owner commands in restricted channels?

Meta Bridge

Meta Bridge

Features

  • Messages verified by staff to be bridged
  • Bridge discord #feedback
  • Bridge discord #video-requests

Add support for files in the binify command

A number of people send txt files of code and errors, so having the binify command read the file and convert it to a bin would be super useful.

  • Would just take a message ID and load an attachment from that.

A tag system

  • Create tags using tag create
  • Edit tags using tag edit
  • View a tag's raw content using tag raw
  • The ability to import tags from R. Danny
  • The ability to set tag aliases
  • The ability to set multiple owners for a tag?
  • The ability for server administrators to delete tags?

Implement call command

This command would implement a ratelimit on pinging helper roles on a member by member basis by forcing clients to use Carberretta's interface to do it.

Support timestamp timezone

Timestamps posted as a result of the redirect command do not display the
timezone.

Solution:
Append Z to the timestamp ร  la ISO 8601.

Implement a lock on support channels

Perhaps have a +lock command which closes the current support case (like +close), but on top of that:

  • Automatically moves the channel to unavailable, regardless of any other factors
  • Locks the previous client out of the support channels for a certain time (maybe an hour or something)

Feel free to leave ๐Ÿ‘ and ๐Ÿ‘Ž reactions to indicate whether this is a good idea or not.

A support case history

Store all the messages used to open recent support cases (maybe the most recent 10 or 20) and link the reopen command to use that list instead of manually searching for messages.

  • Could then include a recap on case reopen
  • When reopening a specific member's case, it could reopen the case in the original channel if possible
  • Perhaps could be used to drag channels out of unavailable to continue the case if need be

This would also fix certain issues:

  • Open cases made while rebooting would always have all the required info (pertaining to level of persistence)
  • Reopening while specifying a member would also work better

Modmail

Modmail

Features

  • Member DMs the bot, and messages are relayed to #moderator-chat
  • Some validation required

Remove the message from Cache after Poll has finished

When you make a Poll, the message ID gets stored in a Cache, that's so the reaction manager/counter works etc. When the poll ends tho, the message doesn't get removed, it doesn't break anything but the reaction manager still manages polls that are finished. Plus the cache gets bigger over time then. So really just remove the message from the Cache when the poll finished.

Add some automatic guideline enforcement

This will mainly centre on pings (the bits that #48 doesn't already cover). This will be fed into the new warning system when done, but that will probably be created as a separate issue

Experience System

Experience System

Features

  • Exponential levelling sytem
  • Commands to opt out of level up messages

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.