Giter Site home page Giter Site logo

mueller-patrick / dhbw_service_bot Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 354 KB

A Telegram bot that provides service funtionality for students at DHBW Karlsruhe, accessible under t.me/dhbw_service_bot.

Home Page: https://t.me/dhbw_service_bot

License: MIT License

Python 100.00%
bot dhbw dhbw-karlsruhe dhbw-service-bot students telegram-bot

dhbw_service_bot's Introduction


dhbw_service_bot's People

Contributors

dependabot[bot] avatar huh-david avatar mueller-patrick avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

dhbw_service_bot's Issues

Change requests to urllib3

If the issue with the bot not responding after some time is related to our POST requests, try changing them to use urllib3.requests

Port to AWS Lambda

Change to serverless framework for AWS Lambda so we can run the bot on AWS

Lecture push should send special message when there are no lectures

Currently, the push does not check if there are no lectures and therefore sends some crap message. It should be checked and in case that there are no lectures it should say smth like "No lectures tomorrow". Implementation should be similar to the getLectures command implementation

Evaluation of meals

Evaluate e.g. the frequency in which some meals appear on the menu (implementable via pandas or smth like that)

Change entered Info

At a command that allows the user to change the info he has given, such as name and course

Google public transport API usage

This task includes using the google maps api to get public transport information for the user so that he arrives at the DHBW on time for his first lecture the next day. This is called by the bot logic of the iCal-Task.

Provide vast documentation

Provide documentation for the data model and also for every class so that its easy to understand how something works for others. Also provide information on how to contribute to this project.

Don't send events like blockers

E.g. vacation days often have events marked as 'Sonstige' ('other'). Don't send these events in the lecture plan push as they are unnecessary

Change meme getter / bot photo sender

At the moment, if you want to send a photo, you have to include the logic to check if this is the file itself or just the file_id. Include this in either function to prevent some goddamn shit duplicate code.

Error printing

Check if the response from telegram is true. If not, print the complete response to the console for easier debugging.

Sent with GitHawk

Change meme-sending Logic

At the moment, the TINF19B4 memes are fetched for every user (at sendLectures). Change this to send the course-specific memes

Reminder for exams

Add a reminder that checks if there is an exam on the next day and if there is, sends a message to every user of that course

Rewrite Requests to a class

Rewrite the Requests logic to be a class with a function that returns the fetched menu to be used by the bot.

Refactor Command.py

The double input of message is unnecessary because every new message is handled by a new instance of Command

Rating-System for meals

Implement a system that allows users to rate todays meal and then if the same meal is on the menu another day, send the user the ratings.

Rewrite sendLectures

At the moment, it fetches the lecture plan and also the meme for every user seperately which is quite inefficient. Try fetching these before iterating over all users (although this causes a problem because of the different courses)

Remove Blockers from iCal

Sometimes, at specific dates, the RaPla iCal file contains blockers (or „markers“) for that day. They usually go from 07:30 to 07:45 and start with something like TINF19. Try to delete them from the sent message as these are just markers and the user does not have to be at DHBW at 07:30 because of this.

Sent with GitHawk

Make things idiot-proof

Validate every important user input and try to change the code so that a problem that occurs just prints an error to the command line and doesn't break the whole fucking bot

Command info for new users

When a new user registers, provide him with all available commands and what they do so they know how the bot can help them.

Sent with GitHawk

Implement Multi-Threading

Especially the maps and menu callouts to external servers sometimes need 0.5-1s each, so with many users, this is a problem. If possible, implement a solution to handle multiple requests at the same time.

Format starting info

The starting info message is very long at the moment, add formatting to provide a clear structure

iCal-File-Analysis

This task includes the automatic fetch of the newest version of the iCal file, the analysis to check what lectures the user has the next day and all related bot logic.

Refactor Main.py

And probably document it better in the code iteself because at the moment, this class is a mess.

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.