MantzBot

Το project αυτό είναι ένα python script που υλοποιεί ένα Telegram Bot.

Τα Bots αυτά τα προσθέτουμε στις συνομιλίες μας στο Telegram, με σκοπό να μας παρέχουν κάποια λειτουργικότητα. Περισσότερες πληροφορίες για το τι είναι και τι κάνουν υπάρχουν εδώ.

To συγκεκριμένο Bot, ελλείψει πιο πρωτοποριακών ιδεών από μέρους μου, υλοποιεί τις ακόλουθες λειτουργίες:

  • Προβολή ενός fortune cookie
  • Υπηρεσία υπενθύμισης
  • Προβολή βοήθειας με οδηγίες χρήσης

Για την λειτουργία του fortune cookie, χρησιμοποιείται το fortune-mod application που είναι διαθέσιμο για όλα τα Linux distributions, άρα και για το host μου, οπότε ήταν αρκετά απλό να υλοποιηθεί.

Οι οδηγίες χρήσης είναι κι αυτές αρκετά εύκολες, απλώς κάνουμε format το κείμενο, και το στέλνουμε με τις συναρτήσεις της έτοιμης βιβλιοθήκης για το telegram API.

Για την υπηρεσία υπενθύμισης, επέλεξα τα δεδομένα να δίνονται από το χρήστη με μορφή κειμένου, για παράδειγμα:

17/12/2021 09:30 - Ραντεβού ΚΤΕΟ

Το script μετατρέπει την μέρα και την ώρα σε ένα timestamp, και αποθηκεύει όλη την πληροφορία για την υπενθύμιση σε μια λίστα, ταξινομημένη κατά αύξον timestamp. Η ίδια πληροφορία αποθηκεύεται και σε μια MySQL βάση, ώστε σε περίπτωση επανεκκίνησης του script, η πληροφορία από τη βάση να μεταφέρεται στη λίστα.

Επιπλέον, κατά την εκκίνηση δημιουργείται ένα δεύτερο thread, το οποίο περιοδικά εξετάζει τη λίστα, και αν βρει υπενθυμίσεις με timestamp μικρότερο από την τρέχουσα ώρα, στέλνει τα αντίστοιχα μηνύματα στους χρήστες, και αφαιρεί τις υπενθυμίσεις από τη λίστα και τη βάση.

Παρέχεται επίσης η δυνατότητα προβολής των εκκρεμών υπενθυμίσεων του chat, καθώς και η δυνατότητα διαγραφής τους πριν ενεργοποιηθούν.

Το project έχει παραλείψεις και ατέλειες, αρκετές από τις οποίες βγάζουν μάτια (είμαστε όλοι στο ίδιο timezone άραγε;), με τις οποίες θα ασχοληθώ στο μέλλον, αλλά σαν γνωριμία με την Python, είχε πολύ ενδιαφέρον.

Ο κώδικας του project είναι διαθέσιμος στο github, εδώ.