БОТ для отправки запросов от пользователя и согласования их с владельцемPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 БОТ для отправки запросов от пользователя и согласования их с владельцем

Сообщение Гость »


Я пытаюсь создать бота с двумя ролями (ВЛАДЕЛЕЦ, ПОЛЬЗОВАТЕЛЬ), и теперь я застрял, как получить ответ на телеграмму с ответом от моей функции postgres list_users_with_request(), возможно, я делаю это неправильно.
[*]Пользователь может отправить запрос владельцу на одобрение. [*]Владелец может получить список пользователей, одобривших и утвердивших его или нет. [*]Пользователь получает сообщение о подтверждении/отклонении
psql
УДАЛЕНИЕ ТАБЛИЦЫ, ЕСЛИ СУЩЕСТВУЮТ пользователи; DROP TABLE IF EXISTS запросы; СОЗДАТЬ ТАБЛИЦУ пользователей ( user_id INT ВСЕГДА ГЕНЕРИРУЕТСЯ КАК ИДЕНТИЧНОСТЬ, имя_пользователя VARCHAR(255) НЕ NULL, ПЕРВИЧНЫЙ КЛЮЧ(user_id) ); Запросы CREATE TABLE ( Requests_id INT ВСЕГДА ГЕНЕРИРУЕТСЯ КАК ИДЕНТИЧНОСТЬ, user_id INT, Request_text ТЕКСТ НЕ NULL, request_approved VARCHAR(255) НЕ НУЛЬ, запрос_дата TIMESTAMP, ПЕРВИЧНЫЙ КЛЮЧ(requests_id), ОГРАНИЧЕНИЕ fk_users ВНЕШНИЙ КЛЮЧ (user_id) ССЫЛКИ пользователи (user_id) ПРИ УДАЛЕНИИ УСТАНОВИТЬ НУЛЬ ); ПРЕДОСТАВИТЬ ВСЕ НА ТАБЛИЦЕ public.users ДЛЯ удаленного_бота; # Добавить пользователя INSERT INTO пользователи(имя_пользователя) VALUES('user1'); # добавить запрос INSERT INTO запросы (user_id, Request_text, request_approved, request_date) VALUES (1, '29 сентября', 'NULL', CURRENT_TIMESTAMP); # утвердить запрос Запросы UPDATE SET request_approved = 'true' WHERE user_id = '1' AND request_approved = 'NULL'; # запрос списка ВЫБЕРИТЕ request_approved ИЗ запросов, ГДЕ request_approved НЕ НУЛЬ; # получить статус SELECT * FROM запросов WHERE AND user_id=1; импортировать asyncio журнал импорта импорт psycopg2 из импорта айограммы Бот, Диспетчер, Маршрутизатор, типы из aiogram.filters.command Команда импорта logging.basicConfig(уровень=logging.INFO) conn = psycopg2.connect(host="10.3.3.80", порт = 5432, база данных="remote_bot", user="remote_bot", пароль="QJchYuaK2jng4QjG") ТОКЕН = "123:123" бот = Бот(токен=ТОКЕН) дп = Диспетчер() #### КОМАНДЫ ВЛАДЕЛЬЦА @dp.message(Команда("list_requests")) асинхронное определение cmd_test1 (сообщение: типы.Сообщение): курсор = conn.cursor() курсор.execute("ВЫБЕРИТЕ request_approved ИЗ запросов, ГДЕ request_approved НЕ NULL;") пользователи = курсор.fetchall() await message.reply(f"Привет! {len(users)} пользователей ждут одобрения. - {(users)} ") @dp.message(Команда("approve_request")) асинхронное определение cmd_test1 (сообщение: типы.Сообщение): курсор = conn.cursor() курсор.execute("Запросы UPDATE SET request_approved = 'true' WHERE user_id = '1' AND request_approved='NULL';") await message.reply(f"Запрос одобрен.") ### КОМАНДЫ ПОЛЬЗОВАТЕЛЯ @dp.message(Команда("add_user")) асинхронное определение cmd_test1 (сообщение: типы.Сообщение): курсор = conn.cursor() курсор.execute("ВСТАВИТЬ В пользователей(user_name) ЗНАЧЕНИЙ('user1');") await message.reply(f"Пользователь добавлен.") @dp.message(Команда("add_request")) асинхронное определение cmd_test1 (сообщение: типы.Сообщение): курсор = conn.cursor() курсор.execute("INSERT INTO запросы(user_id, Request_text, request_approved,request_date) VALUES(1,'29 сентября','NULL',CURRENT_TIMESTAMP);") await message.reply(f"Запрос добавлен.") @dp.message(Команда("статус_запроса")) асинхронное определение cmd_test1 (сообщение: типы.Сообщение): курсор = conn.cursor() курсор.execute("выбрать * из запросов, где user_id=1;") await message.reply(f"Состояние запроса. {(users)}") асинхронное определение main() -> Нет: ожидайте dp.start_polling (бот) если __name__ == "__main__": асин
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Com.jcraft.jsch.JSchException: сбой согласования алгоритма при переходе от openshift к серверу Linux [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Com.jcraft.jsch.JSchException: сбой согласования алгоритма на com.jcraft.jsch.Session.receive_kexinit (неизвестный источ
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Ошибка JSch session.connect: сбой согласования алгоритма
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Ошибка JSch session.connect: сбой согласования алгоритма
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • React Fiber Это механизм рендеринга или механизм согласования в рамках рендеринга?
    Anonymous » » в форуме Javascript
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»