Это попробуй
import telebot
from telebot import types
import sqlite3
from datetime import datetime
import os
from dotenv import load_dotenv
# Загрузка токена из переменных окружения для безопасности
load_dotenv()
TOKEN = os.getenv('TELEGRAM_BOT_TOKEN') # Убедитесь, что у вас правильное имя переменной окружения
# Проверка, был ли токен загружен
if TOKEN is None:
raise ValueError("Токен бота не найден. Проверьте файл .env.")
bot = telebot.TeleBot(TOKEN)
# Инициализация базы данных
def init_db():
conn = sqlite3.connect('service_bot.db')
c = conn.cursor()
# Таблица пользователей
c.execute('''CREATE TABLE IF NOT EXISTS users
(user_id INTEGER PRIMARY KEY,
role TEXT,
username TEXT,
contact_info TEXT)''')
# Таблица заявок
c.execute('''CREATE TABLE IF NOT EXISTS requests
(request_id INTEGER PRIMARY KEY AUTOINCREMENT,
client_id INTEGER,
status TEXT,
description TEXT,
created_at TIMESTAMP)''')
# Таблица ставок
c.execute('''CREATE TABLE IF NOT EXISTS bids
(bid_id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id INTEGER,
executor_id INTEGER,
price REAL,
comment TEXT,
created_at TIMESTAMP)''')
# Таблица чатов
c.execute('''CREATE TABLE IF NOT EXISTS chats
(chat_id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id INTEGER,
client_id INTEGER,
executor_id INTEGER,
status TEXT)''')
conn.commit()
conn.close()
init_db() # Вызов функции инициализации базы данных
# Обработка команды /start
@bot.message_handler(commands=['start'])
def start_message(message):
bot.reply_to(message, "Привет! Я ваш сервисный бот. Используйте команды /register для регистрации и /newrequest для создания заявки.")
# Регистрация пользователей
@bot.message_handler(commands=['register'])
def register_user(message):
markup = types.ReplyKeyboardMarkup(row_width=2)
client_button = types.KeyboardButton('Клиент')
executor_button = types.KeyboardButton('Исполнитель')
markup.add(client_button, executor_button)
msg = bot.reply_to(message, "Кем вы хотите зарегистрироваться?", reply_markup=markup)
bot.register_next_step_handler(msg, process_role_step)
def process_role_step(message):
user_id = message.from_user.id
role = message.text.lower()
try:
conn = sqlite3.connect('service_bot.db')
c = conn.cursor()
c.execute("INSERT OR REPLACE INTO users (user_id, role, username) VALUES (?, ?, ?)", (user_id, role, message.from_user.username))
conn.commit()
bot.reply_to(message, f"Вы зарегистрированы как {role}")
except sqlite3.Error as e:
print(f"Ошибка при работе с БД: {e}")
finally:
conn.close()
# Запуск бота
bot.polling(none_stop=True)
from telebot import types
import sqlite3
from datetime import datetime
import os
from dotenv import load_dotenv
# Загрузка токена из переменных окружения для безопасности
load_dotenv()
TOKEN = os.getenv('7619271249:AAGgwfIF8QP4a-HBLltmwTWMKoMGzwFys-I') # Измените на правильное имя переменной окружения
print("Загруженные переменные окружения:", os.environ)
print("Полученный токен:", TOKEN)
# Проверка, был ли токен загружен
if TOKEN is None:
raise ValueError("Токен бота не найден. Проверьте файл .env.")
bot = telebot.TeleBot(TOKEN)
# Инициализация базы данных
def init_db():
conn = sqlite3.connect('service_bot.db')
c = conn.cursor()
# Таблица пользователей
c.execute('''CREATE TABLE IF NOT EXISTS users
(user_id INTEGER PRIMARY KEY,
role TEXT,
username TEXT,
contact_info TEXT)''')
# Таблица заявок
c.execute('''CREATE TABLE IF NOT EXISTS requests
(request_id INTEGER PRIMARY KEY AUTOINCREMENT,
client_id INTEGER,
status TEXT,
description TEXT,
created_at TIMESTAMP)''')
# Таблица ставок
c.execute('''CREATE TABLE IF NOT EXISTS bids
(bid_id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id INTEGER,
executor_id INTEGER,
price REAL,
comment TEXT,
created_at TIMESTAMP)''')
# Таблица чатов
c.execute('''CREATE TABLE IF NOT EXISTS chats
(chat_id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id INTEGER,
client_id INTEGER,
executor_id INTEGER,
status TEXT)''')
conn.commit()
conn.close()
init_db() # Вызов функции инициализации базы данных
# Обработка команды /start
@bot.message_handler(commands=['start'])
def start_message(message):
bot.reply_to(message, "Привет! Я ваш сервисный бот. Используйте команды /register для регистрации и /newrequest для создания заявки.")
# Регистрация пользователей
@bot.message_handler(commands=['register'])
def register_user(message):
markup = types.ReplyKeyboardMarkup(row_width=2)
client_button = types.KeyboardButton('Клиент')
executor_button = types.KeyboardButton('Исполнитель')
markup.add(client_button, executor_button)
msg = bot.reply_to(message, "Кем вы хотите зарегистрироваться?", reply_markup=markup)
bot.register_next_step_handler(msg, process_role_step)
def process_role_step(message):
user_id = message.from_ user.id
role = message.text.lower()
conn = sqlite3.connect('service_bot.db')
c = conn.cursor()
c.execute("INSERT OR REPLACE INTO users (user_id, role, username) VALUES (?, ?, ?)",
(user_id, role, message.from_user.username))
conn.commit()
conn.close()
bot.reply_to(message, f"Вы зарегистрированы как {role}")
и т.д. ошибка где-то в начале