This program allows you to scrape your codezinger questions that are due and sends them to a discord channel via webhooks.
(at the top it says ita a fork, but its not even a fork at this point)since my uni has moved away from using this platform, it wouldnt be possible for me to use or maintain this project. This bot has been very helpful to me for the time it was running, and I learnt, played around with and implemented alot of new things while making and maintaining it<3
Maybe look around for a same project in the future, adapted to the new platform being used by my uni?
- Sends webhook messages sorted by due dates
- Keeps track if a question's due date has been updated
- Deletes messages for questions past their due dates
- Runs on-demand based on cron schedule
Untitled.mp4
-
Instead of cloning the repository, I suggest you download these 3 files in a folder (preferrably from the release page):
config.yml.EXAMPLE
docker-compose.yml
crontab.txt.EXAMPLE
(Renamecrontab.txt.EXAMPLE
tocrontab.txt
)
-
Now you can customise the bot to your needs:
-
- You can now change the mapping in
config.yml
- the
name
field in theconfig.yml
is the full class name you see in codezinger - tip to find the full length class names with some effort:
run the bot without any mapping first, then the due date message it sends over on discord you'll see the the long name of your class in the message, you can use that to create the mapping as per the format inconfig.yaml
- You can now change the mapping in
-
- This schedule you define here is when the bot will trigger the python script to scrape the data.
- I've set the my timings in my instance to be 5 minutes after my lab class starts, and 5-10 minutes after it ends on those days. You could for example schedule the bot to run daily at a convenient/inactive time like 3 am.
- lookup on the internet on how to define cron schedules if you're new to
that and/or refer mine in
crontab.txt.EXAMPLE
.
-
-
Since you also need to specify your webhook url, your codezinger email & password, you need to create 3 files in a new folder
secrets/
secrets/webhook_url.txt
: this file will contain your discord webhook in a single linesecrets/email.txt
: this file will contain your email in a single line. example:e20cse215@bennett.edu.in
secrets/password.txt
: this file will contain your password in a single line
-
now create an empty database file so docker compose can mount it:
touch db.db
-
Run the compose file:
docker-compose up -d
-
now if you want, you can either delete the
secrets/
folder or change permissions of that folder to read-only for your user (or remove even that also)chmod -R 400 secrets/ # for read-only to your user chmod -R 000 secrets/ # experimental security
NOTE: if you delete your secrets folder and need to update anything in the
docker-compose.yml
file, you'd have to rundocker-compose up -d
again which could require thesecrets/
folder to be accessible again.
This project is licensed under GNU GPLv3