Оцініть телеграм бота написаного на Python початківцем

Всім привіт.

Не являюсь програмістом, але використовую Python для роботи з данними (pandas, парсинг xml і json тощо).

Ось вирішив зробити свого телеграм бота і цікаво на скільки мій код оптимально написаний, правильно організована структура проекту, зрозуміло написані коментарі.

Якщо комусь цікаво, то був би вдячний за оцінку від людей з практичним досвідом розробки.

Посилання на гітхаб: github.com/...​anzik/AnnoyingReminderBot

Посилання на самого бота: t.me/AnnoyingReminderBot

Його задача це отримувати від користувача якесь нагадування і через рандомний час в проміжку від 1 хвилини до 15 надсилати йому це нагадування. Проект задеплоїв на Heroku, тому в боті передбачено перезавантаження їх серверів.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

github говорит 404, уже потер репу?

так. коли буде вільний час, то перезалию вже без історії комітів

Бот спрашиват, что напомнить, но не спрашивает время и дату. kutt.it/ArDn52

в цьому і сенс. він сам нагадує через рандомний час, щоб створити ефект надокучання

омг, можно удалять сразу) лучше свяжи его со списком гугл таблиц и вноси из бота то, что хочешь напомнить и время когда, при этом двухсторонняя связь... это реально юзфул для меня будет и для многих

такі боти вже існують. наприклад Skeddy telegram.me/skeddybot

он не работает с гугл таблицами, и иногда глючит, а если ты будешь писать свое расписание для бота в гугл таблице и бот будет выполнять, ты выучишь и google api частями + telegram api + python3 + mongodb/или другие nosql

но это имхо, а можешь делать как хочешь)

Рекомендую пошукати в інтернеті про sql injections та добре перечитати PEP 249 www.python.org/dev/peps/pep-0249

Паролі, логіни, токени, параметри підключення краще винести в окремий файл, можна, наприклад, створити config.py.example з прикладом конфігураційного файла, в коді імпортити все з config.py, який додати в .gitignore . Тоді ти зможеш локально тестити бота і не паритися при пуші комітів на гітхаб.

В рідмі можна написати кроки по встановленню бота.

Можна, мабуть, було б використати connection pool для з’єднання з бд.

дякую. почитаю. стосовно sql injections я так розумію, що вони в мене не можливі. так як при запиті до бд в where стейтменті використовується тільки chat_id, який передає бот, і його не можна мануально змінити

ніт
kek’ where chat_id = 1; update reminder set task = ’lol

таким чином я змінив task користувачу з chat_id = 1, і можу виконати любий запит.

да, бачу. дякую за допомогу. буду виправляти

я оновив бота. можеш будь ласка ще раз потестити?

Method: messages.sendMessage
Result: {"_":"rpc_error","error_code":400,"error_message":"YOU_BLOCKED_USER"}

бот ламається, коли йому стікери надсилаєш, чи це так і має бути, стікери = порожнє повідомлення

нагадаю, що просто прибрати логіни, паролі та токени та зробити новий коміт у мастер — практично нічим не допомогає в плані безпеки: github.com/...​1f14798f8a80460eb0039cL48

дякую звичайно, що звернув мою увагу, бо я не знав, що історія комітів заливається на гітхаб. але, як на мене, то це неетично викладувати посилання на конфіденційні дані в коментарях. краще це було б зробити в приватних повідомленнях (на linkedin чи телеграм). так, безумовно це 100% моя помилка, що я допустив розміщення цих даних для загального перегляду, і я вдячний тобі, що ти звернув на це увагу. але ти це зробив в найбільш неетичній формі, в якій це тільки можна було зробити. я розумію, що тобі важливо, щоб інші люди оцінили твоє неперевершене вміння сарказму, але, на мою думку, етичність і дружність повинні бути на першому місці

За українську мову молодець, спробуй завантажити на інші ресурси github.com/...​ere-to-host-Telegram-Bots , теж з Heroku починав

из очевидного
не надо заливать в репозиторий весь энвайрмент (папка venv). только requirements.txt.
не надо заливать файлы intellij (.idea)
не нравится мне global updater и global job_queue.

дякую. стосовно global, то не придумав нічого кращого, щоб використовувати updater і job_queue в функціях призначених для dispatcher.add_handler()

Подписаться на комментарии