GithubHelp home page GithubHelp logo

frcdiscord / dozer Goto Github PK

View Code? Open in Web Editor NEW
41.0 41.0 45.0 4.77 MB

Omnipotent guild management bot for FIRST Discord servers

License: GNU General Public License v3.0

Python 99.97% Shell 0.01% Dockerfile 0.02%

dozer's People

Contributors

abidingabi avatar auscompgeek avatar bcurbs avatar cemal-efe-g avatar cpmsfll avatar devyntk avatar elevenchars avatar grahamsh-llk avatar guineawheek avatar j5155 avatar jayfromprogramming avatar jl102 avatar leopiguy avatar mcao avatar myrrhkhan avatar ofekashery avatar omegametor avatar open-sourceress avatar royalpanic avatar silvanathecat avatar skruglov2023 avatar tacoman avatar tomorth avatar transorsmth avatar tweirtx avatar watergame2023 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dozer's Issues

Autopunish

Keeps track of user punishments and allows for use of &autopunish to automatically apply the next punishment.

Web Forms

Use the web component to fill out a form to keep a channel to a certain format.

Newsfeed

Due to the discontinuation of the FRC Newsfeed bot, we are implementing our own version of it.

[Information] It should be noted that the Google Maps API is no longer free to use.

Similar to this issue, as of now, the Google Maps API requires a credit card to use. This makes it fairly difficult for an average user to get the bot up and running from scratch. Is there a way to make a mode in which some functions of the bot dependent on the GMA can be disabled (a Dozer 'Lite' if you will) or at least an update to the readme to accompany these changes, so that a user may be informed before trying to set up the bot only to find that they can't.

Reaction Roles

The idea is to have a message in a channel and when you react with a green check mark it gives you a defined role and if you remove the reaction it takes it back away from you.

Spoiler alert, the other idea is a channel directory that explains what channels exist and what their specific topics are in a centralized location. In that case, it would be really easy to just let them react to the message and get that role immediately.

Hide Dev-Only commands from &help

Unless the user calling &help is a developer, the dev-only commands should probably be hidden from the command. This means we'll likely have to standardize the dev_only check throughout the cogs but I don't think it would be exceptionally hard to filter these out.

Make Mutes and Deafens role-based instead of override-based

This makes mutes and deafens significantly faster (past the first attempt) and would reduce the strain on the bot and the connection to discord significantly. Would require storing the role ID for the two methods and would likely require a check that no new channels have appeared since the last mute/deafen, but should also fix a few outstanding issues as well such as #193

Self deafen timing issue

user self deafens
mod undeafens them early
they re self deafen later
then the og self deafen undeafens them

To quote Berk

Tempgive

Give a user a role that is automatically removed after a certain amount of time

unclear instructions

after I had set up an API key from Google, i opened command prompt and ran python -m pip install -Ur requirements.txt and i got an error saying that no such file existed, and I'm like of course i don't have that. so I downloaded the repository and ran that same command in the folders directory and nothing happened. I would have appreciated clearer instructions for those less experienced

Add delete react to givemes to delete the message

For the privacy of people adding roles, other bots have had a react added to the giveme confirm message that when pressed will delete the message confirmation, allowing the user to keep at least some level of privacy.

Teams too long

1072 has too many members in the FRC server and it breaks onteam

Voicebinds Bug

If a user is in one VC and switches to another that is voicebound to the same channel, the role is taken and not given back until they leave and rejoin

Muting and deafening list the invoker as the target

Tested on development fork (prefix e&) with no relevant changes. Accounts involved: endreman0#9853 (caller), endreman1#1276 (target), Dozer-endreman0#6997 (bot)

      endreman0: e&deafen endreman1
Dozer-endreman0: endreman0#9853 has deafened endreman0#9853 because No reason provided
      endreman0: e&undeafen endreman1
Dozer-endreman0: endreman0#9853 has undeafened endreman1#1276 because No reason provided
Dozer-endreman0: Please configure modlog channel to enable modlog functionality
      endreman0: e&mute endreman1
Dozer-endreman0: endreman0#9853 has muted endreman0#9853 because No reason provided
Dozer-endreman0: Please configure modlog channel to enable modlog functionality
      endreman0: e&unmute endreman1
Dozer-endreman0: endreman0#9853 has unmuted endreman1#1276 because No reason provided
Dozer-endreman0: Please configure modlog channel to enable modlog functionality

Other examples visible in "FIRST® Robotics Competition" guild, channel #spam180.

Update & Reorganize setup instructions

Since Dozer now requires intents, show how to do that in the setup instructions (the bot doesn't boot if they're not enabled). The developer portal has also gotten a makeover since those screenshots were taken, so new screenshots would be nice. In addition, we need to add instructions on how to add Reddit & Twitch API keys, and I think it's a good idea to separate out all the non-essential API keys to a separate section.

When setting up python, it crashes expecting postgres and wont generate config

Hi, I am trying to set this up on an Ubuntu 18.04 server and can't seem to get it working. I have installed Postgres and all the requirements, but when I run

python -m dozer

it gives me this error:

ValueError: invalid DSN: scheme is expected to be either "postgresql" or "postgres", got 'sqlite'

I'm not sure where I am messing up. It won't generate a config file either

Thanks!

Newsfeed YouTube

The only functionality from the old bot we don't have implemented yet is YT

Custom modlogs

Send a modlog that's just the input method with an auto adjusting timezone for consistency

&give is Missing Embed

As in the screenshot below, the &give command output doesn't match the behavior of &giveme

image

Fix timeout bug

Whenever you attempt to timeout a channel without having a member role set, the following error occurs:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: PostgresSyntaxError: syntax error at end of input

Selfdeafen does not undeafen

Selfdeafen command, for any time (valid or invalid), with any reason or no reason, produces error TypeError: punishmenttimer() missing 1 required positional argument: 'reason' after deafening and does not undeafen

Break Apart Global Database

Currently, commands such as &setteam provide their functionality by writing information into a global sqlite database held by Dozer. This means that actions taken with Dozer in DMs, or on secondary guilds affects the perception of the user in the database for all guilds that the bot is a part of. Information of a user should be kept per guild, not globally. Actions on one guild should not affect the information being stored with regards to the user in a different guild.

Running &help in PM throws error

When trying to use the emoji interface from &help in a dm, Dozer throws an error because (i am assuming, i haven't checked) that it can't remove the user's reaction.
image

Better web docs

The current web docs suck. I'd like to see about implementing something that enumerates the commands for Sphinx documentation

DatabaseObject.update_or_add: setting all non-pk fields to None sends an invalid query

The shape of the query in update_or_add is

INSERT INTO table_name
-- (snip)
ON CONFLICT
-- (snip)
DO UPDATE
SET
-- an expression for every column that isn't None and isn't in __uniques__
;

When all non-primary-key columns are None, that query becomes ... ON CONFLICT (...) DO UPDATE SET ; which is invalid syntax.

This is the problem causing #190.

An upsert where every column is null seems pointless, but it can happen when setting an option back to the default/no value. (A prime example is &ng clearsetchannel, which needs a workaround.)

Follow PEP8

I forked dozer to contribute it, opened PyCharm and this is the first thing that I see when I open a file
https://imgur.com/aNDQYOP

I feel like just a general refactor to follow PEP8 would help in terms of consistency and such

HoF System

System where a message with a certain number of a specific emoji will repost that emoji in a specific channel.

Weather/Timezone

Weather/timezone command syntax should be consistent with the teams module, not prioritizing one program over the other.

@bkeeneykid has plans to implement a more flexible syntax parser

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.