frcdiscord / dozer Goto Github PK
View Code? Open in Web Editor NEWOmnipotent guild management bot for FIRST Discord servers
License: GNU General Public License v3.0
Omnipotent guild management bot for FIRST Discord servers
License: GNU General Public License v3.0
Keeps track of user punishments and allows for use of &autopunish to automatically apply the next punishment.
Use the web component to fill out a form to keep a channel to a certain format.
Due to the discontinuation of the FRC Newsfeed bot, we are implementing our own version of it.
General.py:113
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.
Given that we already use OpenStreetMap Nominatim to geocode the towns of teams, all we really need to do is find a library that resolves geographic coordinates to timezones.
There's a bunch of alternatives listed here:
Line 180 in 945e484
Changing it to raw reaction would allow for starboards that have exited the cache to still be updated on reaction
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.
Arranges channels in a specific order
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.
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
user self deafens
mod undeafens them early
they re self deafen later
then the og self deafen undeafens them
To quote Berk
Configurable amount of time to kick someone if they haven't new membered
Idk why but punishment timers aren't working at all
Give a user a role that is automatically removed after a certain amount of time
Working on a code push right now.
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
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.
1072 has too many members in the FRC server and it breaks onteam
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
For level-given roles, there should be an option to only give the member the highest role rather than all of them (which is the current behavior)
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.
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.
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!
The only functionality from the old bot we don't have implemented yet is YT
Send a modlog that's just the input method with an auto adjusting timezone for consistency
Look up a competition and list people on attending teams
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 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
title
Ban with no modlog
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.
The current web docs suck. I'd like to see about implementing something that enumerates the commands for Sphinx documentation
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.)
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
System where a message with a certain number of a specific emoji will repost that emoji in a specific channel.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.