Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
To jest bot Telegram, napisany w Pythonie z wykorzystaniem biblioteki python-telegram-bot. Jego głównym celem jest dostarczanie użytkownikom programów treningowych na podstawie ich płci, celu (utrata wagi, przyrost masy itp.), wzrostu i wagi. W celu interakcji z użytkownikiem bot wykorzystuje dialog krok po kroku (ConversationHandler), co sprawia, że proces jest intuicyjny.

Główne komponenty i ich przeznaczenie

Biblioteka python-telegram-bot: To podstawa, która zapewnia interakcję z Telegram API. Kod wykorzystuje jej asynchroniczną wersję (async def), co jest nowoczesną praktyką.

ConversationHandler: To kluczowy element logiki bota. Pozwala na stworzenie "dialogu" z użytkownikiem, który składa się z kilku kroków lub "stanów". Bot kolejno zadaje pytania i czeka na odpowiedzi, przechodząc od jednego stanu do drugiego.

Stany (States):

Zmienne SELECT_GENDER, GET_HEIGHT itd. — to unikalne identyfikatory dla każdego kroku rozmowy. Pomagają ConversationHandler zrozumieć, na jakim etapie dialogu znajduje się użytkownik i którą funkcję wywołać następnie.

Klawiatury (ReplyKeyboardMarkup):

Zamiast zmuszać użytkownika do wpisywania tekstu ("Mężczyzna", "Utrata wagi"), bot oferuje gotowe przyciski. Zmniejsza to prawdopodobieństwo błędów i sprawia, że interfejs jest bardziej przyjazny. W kodzie znajdują się trzy różne klawiatury: do wyboru płci, do wyboru celu przez mężczyzn i kobiety.

Dane treningów (male_programs, female_programs):

To dwa duże słowniki (dictionaries), które stanowią "bazę danych" bota. Zawierają gotowe programy treningowe, uporządkowane według płci, celu i dni tygodnia. Obecnie te dane są na stałe zapisane w kodzie.

Funkcje-obsługiwacze (Handlers):

start: Uruchamia dialog, wita użytkownika i proponuje wybór płci.

select_gender, select_male_goal, select_female_goal: Obsługują wybór użytkownika z klawiatury, zapisują dane (context.user_data) i zadają następne pytanie.

get_height, get_weight: Odbierają wiadomości tekstowe, przekształcają je w liczby, sprawdzają poprawność i zapisują.

show_workout_program: Ostateczna funkcja. Zbiera wszystkie zapisane dane, oblicza Wskaźnik Masy Ciała (BMI) i znajduje odpowiedni program treningowy w słownikach. Następnie formułuje dużą wiadomość tekstową i wysyła ją do użytkownika.

cancel: Pozwala użytkownikowi w dowolnym momencie przerwać dialog komendą /cancel.

Logika działania (Krok po kroku)

Użytkownik wysyła komendę /start.

Bot odpowiada powitalną wiadomością i pokazuje klawiaturę z przyciskami "Mężczyzna" i "Kobieta". Dialog przechodzi w stan SELECT_GENDER.

Użytkownik naciska jeden z przycisków.

W zależności od wyboru, bot pokazuje nową klawiaturę:

Dla mężczyzn: "Utrata wagi", "Przyrost".

Dla kobiet: "Utrata wagi", "Tonizacja mięśni".

Dialog przechodzi w stan SELECT_MALE_GOAL lub SELECT_FEMALE_GOAL.

Użytkownik wybiera cel.

Bot zapisuje cel i prosi o podanie wzrostu. Dialog przechodzi w stan GET_HEIGHT.

Użytkownik wysyła swój wzrost w centymetrach. Bot sprawdza, czy to liczba, i zapisuje ją.

Bot prosi o podanie wagi. Dialog przechodzi w stan GET_WEIGHT.

Użytkownik wysyła swoją wagę. Bot sprawdza, czy to liczba, i zapisuje ją.

Bot wywołuje funkcję show_workout_program, która:

Oblicza BMI według wzoru waga / (wzrost w metrach)².

Określa kategorię BMI ("Norma", "Otyłość" itd.).

Na podstawie płci i celu znajduje odpowiedni program treningowy.

Formułuje i wysyła ostateczną wiadomość z BMI i programem na 3 dni.

Dialog kończy się (ConversationHandler.END).
Szczegóły pracy
Budżet 206 PLN
Dodana 18 października 2025
156 wyświetleń
Freelancer
Dmytro Romanchuk
Ukraina Czerkasy  8  0

Częściowo zajęty Częściowo zajęty
Zakończono 8 Sejfów
W serwisie 1 rok