Giter Club home page Giter Club logo

z14's People

Contributors

bendardenne avatar greenlamp2 avatar t4g1 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

z14's Issues

T4g1 Humor score - Joke sequences

Objective

Provide with an additional scoring feature (related to #12)

Feature

When jokes are delivered in a linked sequences, score should be calculated differently.

.score x-y-z

Where score = x * 0.9 + y * 0.8 + z * 0.7 +...

Resilience

The bot need to make sure the following is always true when re-started
after a crash or update:

  • All self-assigned roles are consistent with the emojis on the self
    assigned role message for every users
  • All users have at least the default role assigned to them

Kick T4g1

Objective

Give back the power to users by providing them with fair ways to fight back abusive authority.

Features

  • Keep track of how many times the command was used in the last 24hours
  • How much time T4g1 spent muted in the last 24hours
  • Mute T4g1 for an arbitrary amount of time
  • Unmute T4g1 when the timer expires
  • Refuses any subsequent kt while T4g1 is muted by the command
  • Detects if T4g1 is in a vocal channel

Related to #5 #7

Command

.kt

Poll features - z14 improvement

Objective

Provide users will the ability to poll a channel.

Features

Single-choice poll

  1. User inputs question only

.poll "Do you wanna marry me?"
.z14: Do you wanna marry me?
✅ Yes
❌ No
People can answer by clicking one of the emojis (see References section)

  1. User inputs question and 2 choices

.poll "What do you prefer?" "Tomatoes" "Cucumbers"
.z14: What do you prefer?
1️⃣ Tomatoes
2️⃣ Cucumber

Multi-choices poll
User inputs question and ]2;9] choices.

.poll "Do you have a boyfriend?" "Yes" "It's complicated" "No"
.z14: Do you have a boyfriend?
1️⃣ Yes
2️⃣ It's complicated
3️⃣ No

Commands

Single choice poll

.poll "question"
.poll "question" "Choice 1" "Choice 2"

Multi-choices poll

.poll "question" "Choice 1" "Choice 2" "Choice 3" ... "Choice n"

References

Simple poll (Slack) https://simplepoll.rocks/
Polly (Slack) https://www.polly.ai/

Command: help

  • .help: Will display every command and short info
  • .help [command]: Will display long info

Integrate Semgrep within our CI/CD process

As a Security Officer, I want to implement Semgrep, so block serious issues from reaching production.

Semgrep is a fast, open-source, static analysis tool that excels at expressing code standards — without complicated queries — and surfacing bugs early at editor, commit, and CI time.

Documentation is available here

Nouvelle fonction : distribution d'image

Avoir la possibilities d'envoyer une image a z14 et que le bot la renvois par message privé a quelqun au hasard sur le discord, sans dire de qui elle vient
pratique pour partager nos plus belle glace a l'eau

Ability to stream ogg from icecast

For marketing reason, business imperative requires the capacity to stream direct ogg from an icecast server (https://icecast.org/)

Definition of done

☐ The user have the ability to stream sound from a direct HTTP stream using ogg encoding (44100 bitrate, 2 channels, stereo) using command .stream as in .stream http://boomjacky.live:8000
☐ It is possible to stop the stream using .stopstream
☐ Sound quality is acceptable from hearers in the channel.
☐ Behavior is the same as regular music bots
☐ Only user with DJ access rights have the ability to stream

RemindMe

Allow users to set reminder with Z14:

.remindme 5:00:00 "Sortir le linge de la machine"

After 5 hours, Z14 sends a private message to that user telling her to "Sortir le linge de la machine"!

Can also broadcast it on several channels so other can press the issue to said users

Autre exemple:
.rm 10:00 "Les oeufs sont cuits"

Kick Malabar

The module should be able to:

  • Keep track of how many times the command was used in the last 24hours
  • How much time Malabar spent muted in the last 24hours
  • Mute Malabar for an arbitrary amount of time
  • Unmute Malabar when the timer expires
  • Refuses any subsequent km while Malabar is muted by the command
  • Detects if Malabar is in a vocal channel

Related to #5

Bug in kick_malabar

There is currently a bug in the bot wherein malabar gets muted for 5 seconds instead of the expected 5 minutes when using the kick malabar command.
Please fix this issue ASAP, this is impacting our productivity.

Add random image to HydroHomies

Query Reddit API to get /r/HydroHomies top posts, rank by upvotes and take first one to embed a nice pictures with the reminder. Remember those used and dont use the same twice before enough reminder have been posted (configurable history size)

Notification when accidentally testing on prod

Objective

Let less intelligent developers know when they're acctidentally being stupid and testing on the prod environement

Feature

Sends a notification in MP to the dev

z14: "Eh mais tu testes où là toi? T'es abruti un peu non?"

Log and hotreload

Find a mechanism to hot reload on code modification and log errors to text files so we can run multiple days test and catch many errors

Et on m'ban

Makes z14 connects to user's vocal channel and play the "et on m'ban" sample then disconnects

[UPGRADE] RPG progression when .km command is used

Objective

Provide a way to gain experience point by using the .km command.
By default, the command mute Malabar for 5 seconds, with this upgrade, each level allow the user to mute malabar for one more second.

Each effective .km give 1 experience point.
Each level require 75% more experience point than before.
1: 10 - 6 seconds
2: 18 - 7 seconds
3: 32 - 8 seconds
4: 56 - 9 seconds
5: 98 - 10 seconds
...

Draft of this upgrade has already been done, A PR will come later.
XOXO

PS: i've used Pickles to save my Dict into a file. flemme to convert a Dict into a CSV.

Kick T4g1 - v.2

Related to #15

Improvement suggestion based on feedback received.

user: .kt
z14: Dans tes rêves @.user

Improvement request: increase .drum sensibility

In order to capture the depth of (name edited)'s abysmal humorous skills, .drum should take accept support of arbitrary big numbers. On x64 architecture, python number type are bound within [-2147483648, 2147483648 ] range. This is not enough, especially on the negative side.

Definition of done:

[ ] .drum command should accept arbitrary large numbers, including using scientific notation.
[ ] .drum command should accept integer up to the centillon (10^600).
[ ] .drum command should accept googol (10^100) and googolplex (10^googol).
[ ] .drum command should accepts avogadro numbers (6.02214076 × 10^102).
[ ] .drum command shoul accept graham numbers (see https://plus.maths.org/content/too-big-write-not-too-big-graham).

Warning:

The density of information contained in a googolplex is higher than quantum physics information density limits. It's bigger than the amount of planck's volume that can fit in the universe. Thus, it's possible thinking about the googolplex or representing it in anyway triggers a blackhole.

https://www.youtube.com/watch?v=8GEebx72-qs

Reference:

https://realpython.com/python-numbers/
https://python-reference.readthedocs.io/en/latest/docs/ints/
https://www.livescience.com/31981-googol.html

image

T4g1's humor - Score tracker

Objective

Track T4g1 scores on jokes, provide its current average score as well as useful statistics.

Features

Scoring

Add new scores
The score is calculated over 10 points, with 0 being the lowest and 10 the highest.
After each joke, the score is input with

.score x

where x = score sur [-10;10]

Correct score
In case of error, the scores which have been input in the last 60m can be removed.

.score correct x

The functionality must check x against the latest input value & remove only one which matches.

Statistics

Current average
The current average is calculated by SOMME(score)/COUNT(score)

Other statistics

  • Trend over the past week / month / year
  • Highest / lowest score - All time
  • Highest / lowest score - Last month
  • Highest / lowest score - Last week

Commands

Add score

.score +x

Remove score

.score -x

Display score average

.score avg

Display other statistics

.score stats

Access

Available in the channel #general
Only @Paglops should be able to use the feature.

Statistics - Server + Users

Objective

Provide users with an overview of the server's & users' statistics.

Stats

Server specific

General

  • Total users
  • Average daily users
  • Total messages
  • Average daily messages
  • Average monthly messages
  • Server 'age' (uptime)
  • Average daily time spent by users on server (online/active only)
  • Average monthly time spent by users on server (online/active only)
  • Total time spent in voice chat (normal + cumulated)
  • Average activity time in voice chat per day
  • Average activity time in voice chat per month

Leaderboards (top 3/5/10)

  • Highest uptime
  • Highest number of messages
  • Highest activity time in voice chats

User specific

  • Total messages
  • Average daily messages
  • Average monthly messages

Commands

General Server stats

.stats

User specific stats

.stats @username

Leaderboard top 3

.top 3

Leaderboard top 5

.top 5

Leaderboard top 10

.top 10

Further suggestion

  • Add special rank / badge for users in the leader board

Inline feature request

Objective

Suggest a new function to the development team of z14 directly from #bot

Command

.fr "title" "description"

Ok boomer

Objective

Provide users with an appropriate shortcut to answer boomers and boomer-like comments.

Feature

User 1: .ok boomer @.user2
z14: ok boomer @.user2

Command

.ok boomer
.ob

Ba Dum Tss feature

Definition of done

  • Typing .badumtss plays a mp3 sound.
  • The mechanism can be replicated with other command and other sounds
    image

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.