Conversation
arncpp
left a comment
There was a problem hiding this comment.
- добавь readme, опиши там бота и туториал по использованию, также напиши его ник в ТГ
- добавь команду help, которая будет выводить информацию о боте и списке имеющихся команд с их описанием
- напиши мне, как все исправишь и сможешь запустить бота для теста
- Сделай красивую файловую систему: оставь в корне проекта README и сделай файл с запуском проекта main.py (запуск бота)
project/
├── src/
│ ├── module.py
│ └── ...
└── README.md
└── start.py
| @@ -0,0 +1,45 @@ | |||
| schedule = dict() | |||
| SECRET_TOKEN = '6671538505:AAHOw_DrZGYUr-7HmdjgWkxO1oL-uyXbA04' | |||
There was a problem hiding this comment.
Токен - секретная информация. Чтобы сохранить секретные данные безопасно, храни токен в переменных окружения.
Как это сделать, 2 варианта:
-
Задай переменную окружения с помощью командной строки:
Для Linux и macOS:
export BOT_TOKEN=your-token-here
Для Windows:
setx BOT_TOKEN your-token-here -
В Pycharm
Run/Debug configurations -> Edit configuration -> Environmental variables -> Edit environmental variables -> Add -> Ok -> Ok
Как использовать созданную переменную окружения:
В коде пишешь:
import os
bot = telebot.TeleBot(os.getenv("BOT_TOKEN"))
| SECRET_TOKEN = '6671538505:AAHOw_DrZGYUr-7HmdjgWkxO1oL-uyXbA04' | ||
| API_URL = 'https://api.telegram.org/bot' | ||
| UTC_OFFSET = 5 | ||
| URL = '/bot' + SECRET_TOKEN + '/sendMessage' |
| from data import SECRET_TOKEN | ||
| from data import API_URL | ||
| from utils import send_to_telegram | ||
| import queue | ||
| import time | ||
| import requests |
There was a problem hiding this comment.
импорты делятся на несколько блоков, которые нужно разделять:
- Стандартные библиотеки Python:
Сюда входят все встроенные модули и пакеты, такие как os, sys, datetime, logging и т.д. - Сторонние библиотеки (third-party):
Импорты из библиотек, установленных через менеджеры пакетов, например, pip. Это могут быть библиотеки, такие как numpy, pandas, requests и т.д. - Локальные импорты (модули текущего приложения или проекта):
Импорты из модулей, написанных в рамках текущего проекта.
Порядок импортов выглядит соответственно так:
import os
import sys
import numpy as np
import pandas as pd
import a_my_module
import b_my_module
from a_my_module import MyClass
Импорты в блоках должны быть в алфавитном порядке.
| from data import schedule | ||
| from data import SECRET_TOKEN | ||
| from data import API_URL | ||
| from data import UTC_OFFSET | ||
| from data import URL | ||
| from data import HEADER | ||
| from data import DATA | ||
| from datetime import datetime | ||
| import http.client | ||
| import queue | ||
| import time | ||
| import requests |
arncpp
left a comment
There was a problem hiding this comment.
падает с ошибкой
if updates['result']:
~~~~~~~^^^^^^^^^^
KeyError: 'result'
в файле thing.py
arncpp
left a comment
There was a problem hiding this comment.
при запуске падает с ошибкой
Traceback (most recent call last):
File "/Users/arncpp/projects/python2/main.py", line 4, in <module>
src.thing.main()
File "/Users/arncpp/projects/python2/src/thing.py", line 25, in main
updates = requests.get(f'{API_URL}{SECRET_TOKEN}/getUpdates?offset={offset + 1}&timeout={timeout}').json()
^^^^^^
UnboundLocalError: cannot access local variable 'offset' where it is not associated with a value
отдебажь и залей рабочую версию
| from src.data import DATA | ||
| from src.data import HEADER | ||
| from src.data import schedule | ||
| from src.data import URL |
There was a problem hiding this comment.
можно в одну строку через ,
No description provided.