Пересылка сообщения из бота aiogram python в чат по определенному ID
Как возможно сделать пересыл сообщения отправленного пользователем боту в чат по ID, чтобы при этом сохранились данные получаемые при регистрации,это должно происходить на этапе партнерство? В формате: Все данные при регистрации Обращение
from aiogram import Bot, Dispatcher, executor, types
import markups as nav
from db import Database
import time
TOKEN = "№"
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
db = Database('COMPANY.db')
last_commands = []
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
if(not db.user_exists(message.from_user.id)):
db.add_user(message.from_user.id)
await bot.send_message(message.from_user.id,"Для начала регистрации выберите пункт меню!\nВведите названии компании")
last_commands.append({"command":"status_request","data":message})
else:
user = db.get_user(message.from_user.id)
user_name = user[3]
if user_name:
await bot.send_message(message.from_user.id, 'Здравствуйте, {}\nВы уже зарегестрированы!'.format(user_name))
@dp.message_handler(text="Партнерство")
async def Partner(message: types.Message):
await bot.send_message(message.from_user.id, "Ваше обращение передано администратору, с вами в ближайшее время свяжется оператор")
@dp.message_handler(text="Заказать услугу")
async def Partner(message: types.Message):
await bot.send_document(message.from_user.id, open('C:/Users/Asus/Desktop/Услуги.xlsx', 'rb'))
@dp.message_handler()
async def bot_message(message: types.Message):
if message.chat.type == 'private':
if message.text == 'ПРОФИЛЬ':
user = db.get_user(message.from_user.id)
user_status = user[2]
user_name = user[3]
user_lastname = user [4]
user_street = user [5]
if user_status and user_name and user_lastname:
await bot.send_message(message.from_user.id, 'Компания"{}"\nВаше имя "{}"\nВаша фамилия "{}"\nТелефон "{}""'.format(user_status, user_name, user_lastname, user_street))
else:
await bot.send_message(message.from_user.id,"Укажите вашу фамилию")
last_commands.append({"command":"status_request","data":message})
elif last_commands[-1]["command"] == 'street_request':
last_commands.append({"command":"", "data":message})
db.put_user(message.from_user.id,message.text,'street')
await bot.send_message(message.from_user.id,"Укажите вашу цель", reply_markup=nav.Aim)
elif last_commands[-1]["command"] == 'lastname_request':
last_commands.append({"command":"street_request","data":message})
db.put_user(message.from_user.id,message.text,'lastname')
await bot.send_message(message.from_user.id,"Укажите ваш контактный телефон")
elif last_commands[-1]['command'] == 'name_request':
last_commands.append({"command":"lastname_request","data":message})
db.put_user(message.from_user.id,message.text,'name')
await bot.send_message(message.from_user.id,"Укажите вашу фамилию")
elif last_commands[-1]["command"] == 'status_request':
last_commands.append({"command":"name_request","data":message})
db.put_user(message.from_user.id,message.text,'status')
await bot.send_message(message.from_user.id,"Укажите ваше имя")
if __name__== "__main__":
executor.start_polling(dp, skip_updates = True)
БД import sqlite3
class Database:
def __init__(self, db_file):
self.connection = sqlite3.connect(db_file)
self.cursor = self.connection.cursor()
# для работы с БД
# Добавление нового пользователя
# !проверка на пользователя(сделать)
def add_user(self, user_id):
with self.connection:
return self.cursor.execute("INSERT INTO `company` (`user_id`) VALUES (?)", (user_id,))
# проверка на существование в данный момент
def user_exists(self, user_id):
with self.connection:
result = self.cursor.execute("SELECT * FROM `company` WHERE `user_id` = ?", (user_id,)).fetchall()
return bool(len(result))
# указать никнейм
def set_status(self, user_id, status):
with self.connection:
return self.cursor.execute("UPDATE `company` SET `status` = ? WHERE `user_id` = ?",(status, user_id,))
#Указать имя
def set_name_company(self, user_id, name):
with self.connection:
return self.cursor.execute("UPDATE `company` SET `name` = ? WHERE `user_id` = ?",(name, user_id,))
# на какой стадии пользователь(статус аккаунта)
def get_signup(self, user_id):
signup = ""
with self.connection:
result = self.cursor.execute("SELECT `signup` FROM `company` WHERE `user_id` = ?", (user_id,)).fetchall()
for row in result:
signup = str(row[0])
return signup
#изменение этапа регистрации пользователя
def set_signup(self, user_id, signup):
with self.connection:
return self.cursor.execute("UPDATE `company` SET `signup` = ? WHERE `user_id` = ?",(signup, user_id,))
#условие на получение ника
def get_user(self, user_id):
with self.connection:
return self.cursor.execute("SELECT * FROM `company` WHERE `user_id` = ?", (user_id,)).fetchone()
def put_user(self, user_id, data, data_type):
with self.connection:
print(data, data_type)
self.cursor.execute(f"UPDATE `company` SET `{data_type}` = ? WHERE `user_id` = ?", (data, user_id,))
def set_active(self, user_id, active):
with self.connection:
return self.cursor.execute("UPDATE `company` SET `active` = ?", (active, user_id,))
# Проблема у пользователя
# def problem_user(self, user_id, problem):
# with self.connection:
# return self.cursor.execute("UPDATE `users` SET `problem` = ? WHERE `user_id` = ?",(problem, user_id,))