Giter Site home page Giter Site logo

gekkon-order-bot's Introduction

Системные требования:

  • git
  • Python 3
  • virtualenv

Установить недостающие компоненты можно с помощью системного пакетного менеджера (apt-get, yum, pacman и т.д.)

Загрузка проекта

git clone https://github.com/Egor-S/gekkon-order-bot.git
cd gekkon-order-bot

Подготовка аккаунтов

Большая часть настроек располагается в файле config.json, который необходимо расположить в скаченную папку.

google_service.json

Зайдите на сайт Google API Console и выберите Создать проект.

После создания перейдите в раздел Учетные данные и нажмите на Создать учетные данные --> Ключ сервисного аккаунта. Создайте новый сервисный аккаунт с ключом типа JSON.

В завершение процедуры создания учетных данных будет скачан файл, который необходимо переименовать в google_service.json и поместить в скаченную ранее папку.

Токен для телеграм бота

Написать @BotFather, следовать указаниям. В ответ будет получено сообщение с токеном - поместите его в поле telegram-token в файле config.json.

Google таблицы

Разрешите чтение/запись для e-mail из файла google_service.json в нужных таблицах (Google может прислать письмо, что такого ящика не существует - не обращайте внимание).

Структура каталога: на листе Номенклатура три колонки начиная со второй строки

Заголовок категории:

  1. Название новой категории [Столбец A]

Позиция в каталоге:

  1. Пустота [Столбец A]
  2. Артикул (произвольное число) [Столбец B]
  3. Описание [Столбец C]

Название позиции берется из описания, между кавычек. При отсутствии кавычек - берется описание полностью.

В таблице с заказами нужно создать лист Orders, а в первой строке разместить заголовки (id, артикул, название, количество, имя сотрудника, дата). В первой колонке, начиная со второй строки, указываются id заказов.

В файле config.json запишите:

  • id таблицы с листом Номенклатура в поле table в поле catalog
  • id таблицы с листом orders в поле table в поле orders

Оба листа можно разместить в одной таблице, тогда в оба поля нужно записать один и тот же id

Настройка прокси

Для использования socks5 прокси необходимо в файле config.json:

  1. Создать объект в поле proxy
  2. Записать в поле url в поле proxy адрес и порт прокси-сервера в формате socks5://ip_adress:port
  3. Записать в поля user и password в поле proxy имя пользователя и пароль соответственно (при отсутствии указать пустую строку "")

Приветственное сообщение

Сообщение, которое печатается по команде /start, можно настроить в файле config.json в поле welcome-message.

Пример config.json

{
    "telegram-token": "<telegram token>",
    "catalog": {
        "table": "<catalog table id>",
        "sheet": "Номенклатура",
        "range": "A2:C"
    },
    "orders": {
        "table": "<orders table id>",
        "sheet": "Orders",
        "range": "A:F",
        "id-range": "A2:A"
    },
    "notification-chat": <notification chat id>,
    "proxy": {
        "url": "<socks5 proxy url>",
        "user": "<username>",
        "password": "<password>"
    },
    "welcome-message": "Для начала оформления заявки отправьте /order\nДля отмены отправьте /abort"
}

Подготовка окружения

Создаем виртуальное окружение:

virtualenv venv -p python3

Устанавливаем зависимости:

venv/bin/pip install -r requirements.txt

Запускаем бота:

venv/bin/python run.py

Если все действия выполнены правильно, то будет выведено сообщение формата "Logged in as @YourBotName".

Для остановки бота нажмите Ctrl+C.

Канал для оповещений

Добавьте бота в нужный канал и вызовите команду /chatid (он должен быть запущен). Полученное значение (для групп со знаком минус) запишите в поле notification-chat в файле config.json. Для вступления изменений в силу - перезапустите бота.

Завершение настройки

Настройте удобным для вас способом (cron, rc.local и т.д.) запуск бота при старте системы.

Важно! Запускать бота необходимо из директории проекта:

cd /path/to/gekkon-order-bot
venv/bin/python run.py &

Обновление каталога предметов

Обновление каталога происходит автоматически, если данные старше 30 минут. Чтобы немедленно обновить каталог используйте команду /forceupdate.

gekkon-order-bot's People

Contributors

dependabot[bot] avatar egor-s avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.