Create a new Camperbot for the official discord server

FreeCodeCamp recently created an official discord server (here is the announcement), and a few members would like to have a new version of the gitter bot (camperbot) that was featured on the gitter chat.

Github Issue on main repo

This topic should be used to discuss the features and development of a new Discord camperbot, that will be the new version of the gitter bot (linked above).

If you have a feature idea for the bot that isn’t already mentioned please post your suggestion :slight_smile:

gitter bot’s features

  • Give “brownie points” for thanking users (primary feature from gitter-bot version) - this feature will not be in the new one due to it being a source of spam and “gaming” the system.
  • “magic-8 ball” - randomly returns a “magic-8 ball” string.
  • “find command” - searched the wiki for a given string
  • “wiki command” - returned a link to the wiki itself
  • “rooms command” - returned the list of rooms available from FCC (?)
    • this doesn’t make sense in discord
  • status - get the status of the bot
  • version - get the version of the bot

suggested new features

  • Leveling mechanic, connected to some “currency” to buy new levels (seen in the mee6 bot)
  • Automation of some moderation/censorship (seen in mee6 bot)
  • Automated welcome message(s) for new users
    • Connect this to the code of conduct
  • Integration with existing FCC curriculum
    • could provide help/resources for different challenges within the curriculum
  • Integration with FCC news
    • posts new articles from FCC’s news page to read, similar to an RSS feed bot.
  • Integration with FCC’s coderadio
    • could stream music to Discord, similar to other “music bots”.
    • would require updates to the discord to allow voicechat just for the bot.
  • Integration with “search” (algolia powered) to search news via full-text search.
  • Code formatting of plain-text messages (more details here)
  • Non-tracked “brownie point”, the same as before but untracked for each user. Just provide some recognition for people who are thanked.
  • “pinned” message emoji - when a user reacts to a message, they are DMed that same message + link to the original. This will allow users to save previous messages in a chat between the bot and the user.

What, there is a bot?!? What will @ArielLeslie do in her spare time then?

As per the discussion on the GitHub issue tracker, I’m advising against automation of moderation/censorship. In my experience, it’s too heavy handed.

1 Like

This, I believe, would require setting up a voice channel in the Discord. I could be wrong, though.

There can be ways where the bot can act as a “hidden moderator”, with automated censorship. At least to a point to line up with the forums.

I think that is a requirement.
I don’t think the server needs to support voice for anyone except the music bot, so when user’s join the channel no one can talk, but everyone can listen to the music from the bot. This can be done via changing user role permissions within the server to disable voice for all users, except bots.

I added a few more features found in the original gitter bot.

I’d say most of the features have been defined so far :slight_smile:

1 Like

I guess it would be nice to have a profiling mechanism on discord like on #introductions, but people can look at your profile using a command like "showProfile ‘Q Coldwater’ ". You could also set your profile by "setProfile ‘Profile Description’ ". It would be nice to know the people that help you, get to know them better and could possibly help on refining questions asked and answered with knowing the background of the user.

If I understand what you are proposing correctly (and please tell me if I’ve missed the mark!):
I can send a command to the bot to link my chat profile to my FCC profile such as setProfile nhcarrigan.
You can look up my FCC profile from my chat name with showProfile nhcarrigan.

My concern with that would be the lack of authentication - without integrating the bot into FCC’s authentication, what would stop a malicious user from pretending to be someone else?

My aim at first was a discord exclusive profile like on the #introductions channel. Just a simple way to look up people on the discord server with their introductions.

I never thought about linking other media profiles but if the issue would be authentication, I think we can set up a workaround like the bot prompting the user for its credentials on a DM and using FCC’s API for login.

I’m open for other ideas. :slight_smile:

Asking for a user’s FCC credentials in a DM sounds to much like a phishing attack. If we are to support any “shared” login between FCC and their discord account, it would have to be some kind of oauth flow.

I was thinking the other day it might make more sense to lean on discord itself instead of FCC. This way you’d link your FCC account to your discord account via discords apis. I think this would require a more work on FCC’s side, rather then the bot so technically its out of scope for the bot itself. As FCC already has a few oauth login supports setup, and has had issue sin the past with logins, I’d rather not make a claim for this feature, or really any feature that requires changing how logins work for FCC.