• Почему не работает условие elif?

    Vindicar
    @Vindicar
    RTFM!
    Потому что если число больше 18, оно также больше 10.
    Ответ написан
    Комментировать
  • Как присвоить несколько значений в переменную для телеграм бота обратной связи?

    WolfInChains
    @WolfInChains
    Чтобы проверить есть ли айди в списке нужно использовать in, а не ==
    a1 = [1234567, 8901234]
    
    if from_id in a1:
    Ответ написан
    1 комментарий
  • Можно создать такого Телеграм-бота?

    @DeNRuDi
    Да, можно сделать но самым элегантным способом будет делать все в Telegram без лишних интеграций, веб-интерфейсов и тд. как заявляют в других ответах, да и вам проще будет создать.
    Заявки могут приходить в группу, где уже находятся сами менеджеры, а каждый уже будет распределять заявки.

    Но перед разработкой прежде нужно понимать как работают под капотом Telegram-боты. Все они построены и управляются по API, но для вас сделали удобную оболочку в виде библиотек/фреймворков, которыми просто управлять. Поэтому если вы создадите бота, и просто отправите ему текст - он, естественно, ничего вам и не ответит, потому что нужно как-то обработать этот запрос.

    Итого:

    1 шаг - познакомиться с библиотекой pyTelegramBotAPI
    Это очень простая библиотека, в гугле очень много информации на эту тему (если вам нужен 1-2 проекта, то можете остановиться на ней, но если рассматриваете дальнейшую разработку ботов или ожидаете максимальную производительность - лучше сразу изучить aiogram)

    2 шаг - познакомиться с базой данных
    Сделать можно 2 вариантами:
    2.1 Базой данных может выступать сам Телеграм, например заявка будет отправляться в группу, и оттуда уже можно извлекать этот текст, ничего сложного и лишнего не надо будет подключать (за исключением разобраться, как нумеровать заявки)

    2.2 Подключить реальную базу данных
    Да это будет чуть-чуть сложнее, для начала можно и sqlite3. Просто ознакомьтесь с CRUD-операциями, этого будет достаточно с головой.
    Чтоб было проще - воспользуйтесь программой SQLiteStudio.
    На будущее рассмотрите полноценные базы данных mysql/postgresql или nosql, так как sqlite имеет свои недостатки.

    3 шаг - приобретите свой сервер
    Чтобы запускать ботов - есть 2 варианта: polling, и вебхуки. 2 вариант надёжнее и сложнее, но 1 будет отличным стартом. Плюс 1 вариант даст вам удобство в разработке и запуске скрипта всего 1 командой bot.polling().
    4 шаг - позаботьтесь на сервере о бесперебойной работе скрипта
    Если вы будете запускать на linux, вам нужно будет написать systemd-файл (к примеру bot.service) который будет поднимать ваш скрипт, если произошла какая-то ошибка в коде.
    На этом все)

    P.S Но так как я имею уже достаточно большой опыт в разработке, я бы строил с использованием таких технологий:
    aiogram + FastAPI + uvicorn + mysql.
    Удачи в разработке!
    Ответ написан
    1 комментарий
  • Как вычесть у одного пользователя число и добавить его другому?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Лучше делать всё в одном запросе:
    UPDATE users u1
    CROSS JOIN users u2
    SET u1.amount = u1.amount - $summa,
        u2.amount = u2.amount + $summa
    WHERE u1.id = $client
      AND u2.id = $shop;


    Во-первых, один запрос - проще. Пусть даже сам запрос и сложнее.

    Во-вторых, если, например, в структуре таблицы имеется ограничение CHECK (amount >= 0), а сумма такова, что у клиента баланс уйдёт в минус - в таком случае ни одна из записей не будет изменена.
    Ответ написан
    Комментировать