Giter Site home page Giter Site logo

ops-bot-iii's People

Contributors

1nv8rzim avatar c0untingnumbers avatar dependabot[bot] avatar gidobossftw5731 avatar hfw8271 avatar jabbate19 avatar praneeth919 avatar sophduke avatar steeple-jack avatar voxelvortex avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

ops-bot-iii's Issues

Simplify Slash Commands

Is your feature request related to a problem? Please describe.
Slash Command Declaration are more complicated than they need to be

Describe the solution you'd like
Simplify Slash Command Declaration

Describe alternatives you've considered
N/A

Additional context
N/A

Make General Meeting Signins last for 4 hours

Is your feature request related to a problem? Please describe.
Signins all last 2 hours, make general meetings last for 4 hours

Describe the solution you'd like
Have General Meeting signins last for 4 hours

Describe alternatives you've considered
N/A

Additional context
N/A

Change Timed Message Deletes to `defer` Statements

Describe the bug
When bot is restarted when signin is active, it will leave message and not delete it.

To Reproduce
Start signin
Restart Bot
Signin is still visible but doesn't work

Expected behavior
When bot is killed it should close out by deleting all those pending message deletes

Logs and Evidence
N/A

Additional context
N/A

Automatically signin user who creates signin

Is your feature request related to a problem? Please describe.
IG leads sometimes have low signins for the IG they lead because they forget to click the signin button after creating a signin.

Describe the solution you'd like
Signin creators should automatically be signed in to the IG they've created a signin for.

Describe alternatives you've considered
N/A

Additional context
N/A

Sign-in Interactions Do Not Autodelete

Describe the bug
After the 2 hours for sign-ins are done, the interaction message does not delete

To Reproduce
Run \signin and wait

Expected behavior
After 2 hours the sign-in should delete

Logs and Evidence

{
	"id": "AgAAAYphi1G2Vz8qiQAAAAAAAAAYAAAAAEFZcGhpMXIzQUFDLVN2VjlxbmFfNXdBQQAAACQAAAAAMDE4YTYxYzQtNjAyNi00NmNjLWI0NTItZTI0ZjI1ZWEyM2Nl",
	"content": {
		"timestamp": "2023-09-04T18:53:54.998Z",
		"tags": [
			"service:obiii",
			"source:go",
			"filename:obiii.log",
			"sourcecategory:sourcecode",
			"datadog.submission_auth:private_api_key",
			"env:prod"
		],
		"host": "obiii.maxfus.co",
		"service": "OBIII",
		"message": "[dd.service=OBIII dd.env=prod dd.trace_id=\"1939644762994719823\" dd.span_id=\"1939644762994719823\"] Error encounted while deleting interaction response",
		"attributes": {
			"dd": {
				"span_id": "1939644762994719823",
				"service": "OBIII"
			},
			"level": "error",
			"time": "2023-09-04T18:53:54Z",
			"error": "HTTP 401 Unauthorized, {\"message\": \"Invalid Webhook Token\", \"code\": 50027}",
			"user": {
				"bot": false,
				"verified": false,
				"flags": 0,
				"banner": "",
				"avatar": "2350e8003216585ea598525d14e2123f",
				"locale": "",
				"discriminator": "0",
				"token": "",
				"premium_type": 0,
				"accent_color": 0,
				"system": false,
				"mfa_enabled": false,
				"id": "309141130858070016",
				"public_flags": 4194432,
				"email": "",
				"username": "1nv8rzim"
			},
			"span": {
				"ParentID": 0,
				"Meta": {
					"language": "go",
					"runtime-id": "7be496a0-e7df-4e8a-ad2b-19f0c3edb069",
					"env": "prod",
					"_dd": {
						"p": {
							"dm": "-1"
						}
					}
				},
				"Type": "",
				"Metrics": {
					"process_id": 2801073,
					"_sampling_priority_v1": 1,
					"_dd": {
						"agent_psr": 1,
						"top_level": 1,
						"trace_span_attribute_schema": 0
					}
				},
				"Start": 1693846433446592800,
				"Resource": "/signin",
				"Service": "OBIII",
				"TraceID": 1939644762994719700,
				"Error": 0,
				"Duration": 3423485349,
				"Name": "commands.slash.signin:Signin",
				"SpanID": 1939644762994719700
			}
		}
	}
}

Additional context
N/A

Multiple Sign-Ins Allowed

Describe the bug
Users are able to sign-in multiple times to the same prompt

To Reproduce
Sign-in more than once

Expected behavior
Not do that

Logs and Evidence
image

Additional context
Add any other context about the problem here.

Config Value for DataDog Tracer Config Values

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Use config values to be used in DataDog tracer service and tracer env.

Describe alternatives you've considered
N/A

Additional context
N/A

Chase's "Guys what do I do" post in #shitposting not in 1st place on scoreboard when it should be

Describe the bug
The message by ChaseK that has the most :angryreact:s (53) was initially on the scoreboard in 1st place but does not show up anymore. Instead, Kenny's message that has 38 :angryreact:s shows up as 1st instead.

To Reproduce
Steps to reproduce the behavior:

  1. Type /scoreboard
  2. See that ChaseK's post is not on there in 1st place or at all

Expected behavior
ChaseK's message listed as 1st instead of Kenny's message.

Logs and Evidence
image
image

Transition OBIII to run as non-root user

Is your feature request related to a problem? Please describe.
OBIII currently runs as root, this is a security concern

Describe the solution you'd like
OBIII should have another dedicated user to run as instead of root

Describe alternatives you've considered
N/A

Additional context
N/A

Allow Kudos for Multiple User

Is your feature request related to a problem? Please describe.
Kudos can only be given to a single person

Describe the solution you'd like
Instead of only allowing a single user to receive kudos in a single message, all for up to set amount to be attached to kudos

Describe alternatives you've considered
N/A

Additional context
N/A\

`logging/buttons.go` Invalid Emoji

Describe the bug
An error is sent when logging/buttons.go is used; throws an invalid emoji error

To Reproduce
Cause logging with button to occur.
Examples:

  • Send message that get angry-reacted by bot
  • Send uwu message
  • Send Is the stack running? message

Expected behavior
Does not cause error

Logs and Evidence
image
image

Additional context
N/A

Deprecate Signins Command

Is your feature request related to a problem? Please describe.
At the end of the year, be able to mark all sign-in as deprecated so they do not influence years to come where sign-ins are measured for permissions.

Describe the solution you'd like

  • Create a command that requires admin access and a second user approval
  • Add a deprecated field onto ent schema for signins
  • Create a function to change all existing signins to deprecated

Describe alternatives you've considered
N/A

Additional context
N/A

Sign-Ins allow Multiple Signins

Describe the bug
You can get infinite amount of signin

To Reproduce
Click the button multiple times

Expected behavior
Not that

Logs and Evidence
N/A

Additional context
N/A

Action Deploy of OBIII merges to #main

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Set up GitHub actions to do the following on merge of a PR into main:

  • Authenticate into OBIII host machine
  • Pull new changes to main branch
  • Rebuild OBIII binary
  • Restart OBIII service

Describe alternatives you've considered
N/A

Additional context
N/A

RVAPT Does Not Exist as Signin Option

Describe the bug
Add RVAPT as signin Option

To Reproduce
N/A

Expected behavior
RVAPT should be a sign-in option

Logs and Evidence
N/A

Additional context
N/A

Simplify Scheduled Tasks

Is your feature request related to a problem? Please describe.
Scheduled tasks are more complicated than they need to be

Describe the solution you'd like
Clean up extra not-needed code

Describe alternatives you've considered
N/A

Additional context
N/A

CODEOWNERS File

Is your feature request related to a problem? Please describe.
Create a CODEOWNERS file to prevent the need to manually ping for review

Describe the solution you'd like
A CODEOWNERS file

Describe alternatives you've considered
N/A

Additional context
N/A

Message Modification Edge Case

Describe the bug
When a message is modified with the length between 1013 and 1024, the outputted field will exceed 1024 and cause an error

To Reproduce
Send a message of 1013-1023 character, OBIII will send an error

Example:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Expected behavior
Not cause an error

Logs and Evidence
HTTP 400 Bad Request, {"message": "Invalid Form Body", "code": 50035, "errors": {"embeds": {"0": {"fields": {"1": {"value": {"_errors": [{"code": "BASE_TYPE_MAX_LENGTH", "message": "Must be 1024 or fewer in length."}]}}}}}}}

Additional context
Add any other context about the problem here.

Shitposting Leaderboard

Is your feature request related to a problem? Please describe.
Create a shitposting Leaderboard which will keep track of the top X shitposts ever

Describe the solution you'd like
Slash Commands to view the leaderboard
Database Connectors to store shitposts
Handler to load reacts anytime someone reacts

Describe alternatives you've considered
N/A

Additional context
N/A

Enhanced Logging for Panics

Is your feature request related to a problem? Please describe.
When panics are encountered, the are not able to be logged and will cause OBIII to reboot.

Describe the solution you'd like
Implement a panic handler at the entrance of all goroutines in order to catch and log all panics.

Panics should be logged directly to file and not sent via normal discord log management. Similarly, in order to send notifications to discord an alternate method of logging via send embeds via webhooks should be used.

Describe alternatives you've considered
N/A

Additional context
N/A

Add Response to Creator of Signin with all those who signed in

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
When a signin closes, a total number of signins as well as who signed will automatically be sent to whoever opened the signin

Describe alternatives you've considered
N/A

Additional context
N/A

Voting Sankey Visualization

Describe the bug
For complex rank-choice voting, visualization through an HTML page is broken.

The text representation of the vote is still accurate.

To Reproduce
Set up a vote where multiple people participate. The generated Sankey diagram will sometime have inconsistencies

Expected behavior
Sankey Diagram should match the text output and does not

Logs and Evidence
N/A

Additional context
N/A

Good Food re-enabled with new schedule

Is your feature request related to a problem? Please describe.
Good Food is back, why do we not get pings

Describe the solution you'd like
Give up pings

Describe alternatives you've considered
N/A

Additional context
N/A

Add and Enforce Checks for Merge Requests

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Set up an Actions workflow to ensure that OBIII is able to compile before merging.

Likewise, add other checks to ensure quality of code being committed, examples from chatGPT are below:


Static Code Analysis:

    golangci-lint: Integrate golangci-lint into your workflow to catch various coding style, formatting, and potential bugs using its extensive set of linters.

Unit Testing:

    go test: Run unit tests using the built-in go test command to ensure that individual components of your code are functioning correctly.

Code Coverage:

    go test -cover: Calculate and enforce a minimum code coverage percentage to ensure your tests exercise a substantial portion of your codebase.

Dependency Management:

    go mod tidy: Ensure that your project's Go module dependencies are correctly managed and up-to-date.

Security Checks:

    gosec: Use gosec to perform static analysis for security vulnerabilities in your Go code.

Documentation Checks:

    godoc: Validate that your code is well-documented and adheres to GoDoc standards.

Build Checks:

    go build: Ensure that your code compiles successfully with go build to catch any build errors.

Integration Testing:

    Integrate tests that simulate real-world scenarios, especially if your application interacts with external services or APIs.

Code Formatting:

    Use gofmt or goimports to enforce consistent code formatting.

Git Hooks:

    Pre-commit and pre-push hooks that run the above checks locally before allowing commits or pushes

Describe alternatives you've considered
N/A

Additional context
N/A

Semantic Version of New Merges to main

Is your feature request related to a problem? Please describe.
There is no versioning or release process for OBIII.

Describe the solution you'd like
Implement automated versioning and release creation for merged pull requests to the main branch, following Semantic Versioning (SemVer).

Describe alternatives you've considered
N/A

Additional context
N/A

Message Modifications can exceed Maximum Embed Size

Describe the bug
Message modification can exceed the maximum length of embeds resulting in sending errors.

To Reproduce
Modify a long message, OBIII will send an error about being unable to send an embed due to exceeding the maximum length of messages

Expected behavior
The message should be shortened to only include edits or extended to use multiple embeds when the messages if of maximum length

Logs and Evidence

{
	"id": "AgAAAYph8Iur0MMqiQAAAAAAAAAYAAAAAEFZcGg4Smp3QUFDLVN2VjlxbDg1YXdBQQAAACQAAAAAMDE4YTYxZjAtOWYzNi00ZmUwLTlkZjUtNDk4OWYyZDA2MTNk",
	"content": {
		"timestamp": "2023-09-04T20:44:28.971Z",
		"tags": [
			"service:obiii",
			"source:go",
			"filename:obiii.log",
			"sourcecategory:sourcecode",
			"datadog.submission_auth:private_api_key",
			"env:prod"
		],
		"host": "obiii.maxfus.co",
		"service": "OBIII",
		"message": "[dd.service=OBIII dd.env=prod dd.trace_id=\"4643117501368144029\" dd.span_id=\"4643117501368144029\"] HTTP 400 Bad Request, {\"message\": \"Invalid Form Body\", \"code\": 50035, \"errors\": {\"embeds\": {\"_errors\": [{\"code\": \"MAX_EMBED_SIZE_EXCEEDED\", \"message\": \"Embed size exceeds maximum size of 6000\"}]}}}",
		"attributes": {
			"dd": {
				"span_id": "4643117501368144029",
				"service": "OBIII"
			},
			"level": "error",
			"time": "2023-09-04T20:44:28Z",
			"error": "HTTP 400 Bad Request, {\"message\": \"Invalid Form Body\", \"code\": 50035, \"errors\": {\"embeds\": {\"_errors\": [{\"code\": \"MAX_EMBED_SIZE_EXCEEDED\", \"message\": \"Embed size exceeds maximum size of 6000\"}]}}}",
			"span": {
				"ParentID": 0,
				"Meta": {
					"language": "go",
					"runtime-id": "db67da43-bcd8-4ebe-90ab-96df941b0b1c",
					"env": "prod"
				},
				"Type": "",
				"Metrics": {
					"process_id": 2819797,
					"_sampling_priority_v1": 1,
					"_dd": {
						"agent_psr": 1,
						"top_level": 1,
						"trace_span_attribute_schema": 0
					}
				},
				"Start": 1693860268608962600,
				"Resource": "Handlers.MessageEdit",
				"Service": "OBIII",
				"TraceID": 4643117501368144000,
				"Error": 0,
				"Duration": 0,
				"Name": "commands.handlers.message:MessageEdit",
				"SpanID": 4643117501368144000
			}
		}
	}
}

Additional context
N/A

Automatically Create Thread on Message in #questions

Is your feature request related to a problem? Please describe.
Whenever someone messages in a #message channel, automatically create a thread for responding to enforce the use of threads

Describe the solution you'd like
Create and handler on message which will create a thread for all messages in channels that have "questions" in their name.

Describe alternatives you've considered
N/A

Additional context
N/A

Remove Discord Discriminator from Google Sheets Backup

Is your feature request related to a problem? Please describe.
With the deprecation of discord discriminators, we need to remove the use of the discriminator in discord

Describe the solution you'd like
Delete references to discriminator

Describe alternatives you've considered
N/A

Additional context
N/A

Add Config Value for Disabling Google Module

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Ability to disable google module from config.yml

Describe alternatives you've considered
N/A

Additional context
N/A

/alumni Slash Command to Convert Members to Alumni

Is your feature request related to a problem? Please describe.
Conversion of Members to Alumni is currently a manual process

Describe the solution you'd like
Members can request to become an alumni by using the /alumni command. This will be sent to E-Board for approval and once approved it the Member's member role will be revoked and the alumni role will be added

Describe alternatives you've considered
N/A

Additional context
N/A

Add DFIR and Vulnerability Research IGs to Signins

Is your feature request related to a problem? Please describe.
Add signin options for new Interest Groups

Describe the solution you'd like
N/A

Describe alternatives you've considered
N/A

Additional context
N/A

Attendance Query Slash Command

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
Provide a simple query for E-Board and IP/IG lead which allows them to query signin activity over a given time span

Describe alternatives you've considered
N/A

Additional context
N/A

Role join button for birdos

Is your feature request related to a problem? Please describe.
I cannot add buttons to role-join (secretary skill issue?) and would like to allow people to join birdos channel and share bird pictures

Describe the solution you'd like
Add a role-join button for birdos, in the same section as cattos and doggos

Describe alternatives you've considered
Please

Additional context
image

Actually I would just like E-board to be able to edit obiii roles tbh

Birthday Role

Is your feature request related to a problem? Please describe.
N/A

Describe the solution you'd like
OBIII Birthday is super simple, on an enrolled user's birthday they will receive an temporary birthday role which will give them a little ๐ŸŽ‚ or ๐ŸŽ‰ emoji at the end of their name and once their birthday is done the role will be removed.

Independent Features:

  • Enroll Birthday Slash Command
  • Edit Birthday Slash Command (can be same as enroll)
  • Scheduled Event that runs at 12:00 AM for birthday role management
    • Remove all members currently with birthday role
    • Add all people with a birthday on that day

Concepts Used:

  • Slash Commands
  • Scheduled Events
  • Logging
  • Ent Schema
  • Ent Interactions

Describe alternatives you've considered
N/A

Additional context
This is feature to be completed by OBIII Mentorship group ๐ŸŽ‰

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.