stijndcl / didier Goto Github PK
View Code? Open in Web Editor NEWOver-engineered Discord bot for my Ghent University class
Over-engineered Discord bot for my Ghent University class
When next year starts, add BA3 course URLs & names to the relevant files.
Also, ask people from BA1 & BA2 what the new URLs are so that they can use the notifications as well.
Add slash commands once they are implemented in dpy
Requested by @NielsPraet, either find an API or scrape inspirobot
.
This makes it easier for people to work on Didier, allowing them to copy-paste this code into their PSQL console instead of manually creating every table.
When pushing something to master, Didier is restarted. This should only happen in case a py file was changed, which allows changing json
files without having to restart.
Currently adding Didier to another server and whitelisting channels requires the actual code to be changed & a restart. That's bad.
when didier faq is called:
look for the channel it was typed in, and show the faq page corresponding to that channel
Discord 2.0 & recent Quart versions require higher Python versions (3.8+). Didier's Python version should move with it to support all the new features once they are released.
Once this is done, update Quart
and Quart-CORS
to proper non-ancient versions, and change the version in the readme.md
& .python_version
files.
Currently, all is-Didier-checks use Didier's id, which means they don't work when sandboxing. These should all be replaced by client.user.id
so they work for anyone messing around.
Command to get search results (to actually search instead of sarcastic lmgtfy
responses), name "Search", alias "GTFM" (remove from LMGTFY's aliases)
Find a lib, this one looks promising: https://pypi.org/project/googlesearch-python/
Not yet implemented in discord.py
Option to join/leave threads, and listen to commands
Price API: https://sochain.com//api/v2/get_price/DOGE/USD
Bit of a meme, not sure if we actually need this. Might do it for the hell of it but might also skip it because laziness.
Using big dicts everywhere is a huge mess
Already WIP (branch les_rework
)
EDIT: Add support for ELOSP livestream links, and make it easier to add platforms like Gather
Also include the amount of goals per team in the table
People often try to use commands there, it's a private channel so it won't bug anyone.
Big tuples are a bit of a mess, and having to look up the indexes for every element every time is annoying & ugly. This should be simplified by putting everything into a class that stores the data as properties.
didier give @Myself all resulted in the disappearance of the dinks
A fair amount of requirements are missing from the file apparently.
Also, add some info on how to install menus & postgresql
Bots have global emotes, so Zandbak's emoji slots can be used to store extra letters for React
Creating a wiki is a bit easier to read, follow & maintain than digging for all of the .md
files in random folders
Plain text looks ugly, this can be made a lot cleaner using an embed
Some top definitions are a bit obscure (or just terrible), it's a good idea to add pagination to find proper definitions.
Maximum number of reactions is 20, check if previous + new > 20 so an error stops throwing
QOL for other people developing: when running Didier, verify that every required file already exists. Show warnings in case they don't.
Initialize ignored files if they don't exist, initialize required files with a prompt that asks for any content.
Add buttons to menu's once they are implemented in dpy
The grid layout for minesweeper (hard difficulty) is messed up. Fix it.
Nothing a regex can't fix
Caused by a bug in the googletrans
module (relevant issue)
Check back there every now and then to see if it has been fixed already.
Parse <a href="url">SOMETHING</a>
tags to [SOMETHING](url)
.
Example excerpt taken from a random SEL notification for testing:
Bijlagen:</div>\n\t<div style="margin: 0px; padding: 0px;">\n\t\t<div style="margin: 0px; padding: 0px;">\n\t\t\t<div style="padding: 0px; margin: 0px;">\n\t\t\t\t<a href="URL_GOES_HERE" rel="noopener" style="color: #00617f;">Groepslijst_SELab1.pdf</a>
EDIT: this lib exists, use it instead of the dict: https://github.com/matthewwithanm/python-markdownify
we just make a server for just letters and spam it with emotes, so didier has alot of options
Once private messages (whispers) are implemented in dpy, refactor some commands to use these instead of spamming chat or DMing. Remove the original messages calling it as well.
Running out of embed space & it's becoming a bit big, so adding pages (limiting to 10-15 items per page) is probably a good idea. Adding extra memes will also make this a necessity eventually.
Usage: didier pin mesgID
Didier will start a vote requiring x yeah votes for the message to be pinned in the current channel.
This will reduces admin spam for pins
Daylight savings time :/
Covid api was updated yesterday to give access to vaccination data. The Corona
command should show this, good news should be spread around.
Use days=3
to get info from yesterday & day before (difference) for trends
.
Classes >>>>>>>>>>>>>>> dicts, also move the new code to a separate file because it doesn't belong in the cog
As proposed by @ChewingBever on #68. This removes the need for SQL statements & makes it so nobody has to manually create & maintain their tables anymore.
Rob is a huge mess and I'm a bit scared to touch it, but they should start using classes. These classes would store all info on a person's profile, with functions that make checks a lot easier to perform. The profiles can be built from the info in the database.
The actual Rob
function will become a lot cleaner.
Bank-related functions can also use these classes to clean up a bit.
Per channel, to shame on people for removing & editing messages
The id's of memes are shown on the memegen pages of imgflip.
Requested by Snil
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.