Coder Social home page Coder Social logo

culture_its_ok_3's Introduction

Бот АНО "Культура”

Бот предназначеный для описания арт-объектов, а так же сбора отзывов о них. Можно сказать - "проводит экскурсию по уличным инсталяциям"

Описание работы

При подаче команды /start активируется бот Далее он покажет место входа на фестиваль.

Ну вот и подошло все к концу.

Инструкция к запуску боту

Заполнение evn фала.

Стоит уточнить что без него ничего не будет работать. Ведь в нем хранятся секретные переменные которые дают сцепление с самими телеграмом.

#Необходимо указать токен для телеграмм-бота
TELEGRAM_TOKEN=
#Необходимо указать ID чата телеграмм
TELEGRAM_CHAT_ID=
### Google
EMAIL=
TYPE=
PROJECT_ID=
PRIVATE_KEY_ID=
PRIVATE_KEY=
CLIENT_EMAIL=
CLIENT_ID=
AUTH_URI=
TOKEN_URI=
AUTH_PROVIDER_X509_CERT_URL=
CLIENT_X509_CERT_URL=
# Указываем базу данных
DB_ENGINE=
# Указываем имя базы данных
DB_NAME=
# Указываем логин для подключения к базе данных
POSTGRES_USER=
# Указываем пароль для подключения к базе данных
POSTGRES_PASSWORD=
# Указываем название сервиса (контейнера) с базой данных
DB_HOST=
# Указываем порт для подключения к базе даннах
DB_PORT=

Как узнать токен бота TELEGRAM_TOKEN? Первым делом нужно его создать!

  1. Копируем @BotFather и вставляем в поиск image
  2. Запускаем бота и выбираем /newbot image
  3. Пытаемся подобрать уникальное имя и юзерку (Что такое юзерка? Стоит узнать! Это короткое и уникальное имя бота/пользователя/группы формата @ЭтоЮзерка ). В этом мире железок есть два правила:
  • бот первый не пишет пользователю
  • имя должно кончаться на bot

image

  1. После всех процедур, вам выдаст такое сообщение. Стоит обрадоваться, ведь у вас есть свой бот. Бот - ваш ребенок и надо его защитить от сглаза. Поэтому никому не показываем то что выделено как ключ 5829707275:AAEXR6AF77cSbjqyfu46bOy0BP_9VWcMppM image
  2. Закидываем в первую константу env файла и идем разминать спину. image

Как узнать TELEGRAM_CHAT_ID? Этому еще в школе учили...

  1. Для любителей поспать на уроках посвящается. Копируем @getmyid_bot и вставляем в поиск image
  2. /start и все. На этом моменте бот уже будет работать image
  3. Копируем и вставляем во вторую константу TELEGRAM_CHAT_ID. И можем тестить функционал бота image

Как узнать бок данных от Google? Ну ладно, только никому

Блок данных от гугла тоже должен быть в строгой секретности, иначе все узнают что и кто написал об экспонате.

  1. Если вы бесстрашный воин, то преходите по этой ссылке
  2. Дальше все как во всех боевиках. Создаем проект, заходим во вкладку API and Servises. Создаем Google Sheets. image image
  3. Дальше как в квесте. По подсказкам разгадываем ребус image image
  4. Эта форма состоит из трёх полей:
  • Service account name — имя аккаунта, может быть любым;
  • Service account ID — ID, формируется автоматически из имени аккаунта;
  • Service account description — описание сервисного аккаунта; тут можно написать, за что будет отвечать этот сервисный аккаунт. image
  1. Где будет выбор роли - ставим Basic image
  2. Должно выйти что-то в этом духе image

Остался последний рывок

  1. Получаем JSON-файл с ключом доступа к сервисному аккаунту
  • Осталось получить JSON-файл с ключом доступа к сервисному аккаунту и можно будет отвлечься от интерфейсных дебрей Google Cloude Platform.
  • Перейдите на экран Credentials, нажмите на строчку с названием вашего сервисного аккаунта, чтобы попасть в его настройки.
  • Нажмите Keys – Add Key – Create New Key, чтобы создать ключ доступа к вашему сервисному аккаунту. image image
  1. Дело мастера боится. К нам скачивается JSON файл (не вирус). Если есть редакторы кода (VSCode, Noteapd++, Sublime), то открываете этот файл там, если нет то качаем и открываем. Должно быть что-то типо
{
"type": "service_account",
"project_id": "fluid-dreamer-343515",
"private_key_id": "47169bcc4c4......8a331d4b769eb1ff",
"private_key": "-----BEGIN PRIVATE KEY-----\n....bTxwcv\n-----END PRIVATE KEY-----\n",
"client_email": "[email protected]",
"client_id": "114239083367454348646",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-praktikum%40fluid-dreamer-343515.iam.gserviceaccount.com"
}

Теперь нам надо вставить это все в соответсвующее константы БЕЗ СКОБОЧЕК И ПРОЧЕЙ МИШУРЫ

Как проверить что все хорошо? Пока никак

Как быть с тем что осталось? Не буду вас мучить. Копируйте и выдыхайте

DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432

Если вы делаете все на удалённом сервере

Бот к запуску готов. Осталось вставить ключ зажигание и вперед!

Шутка! Первым делом надо обновить все на ВМ Вообще просто вставляйте в строку все что я напишу по порядку.

sudo apt upgrade -y
sudo apt install curl
# Эта команда скачает скрипт для установки докера
curl -fsSL https://get.docker.com -o get-docker.sh
# Эта команда запустит его
sh get-docker.sh
sudo apt remove docker docker-engine docker.io containerd runc #должно быть E: Unable to locate package docker-engine
sudo apt update
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-compose -y
sudo systemctl status docker
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo docker-compose up -d --build

Теперь точно тестим

Поверили? Не расходимся! Еще деплой бота, но это завтра

culture_its_ok_3's People

Contributors

iprojekt avatar tepesh-vlad avatar kr0t avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

kostin-es

culture_its_ok_3's Issues

Docker

Прописать докер файл и доккер композ файлы

Работа с CD CI

Прописать воркфлоу на прохождение PEP 8 (И добавить шаблон для отправление на сервер)

Вывод данных

Вывод данных в таблицу.

---------------------------------------------------------------------------------------
|  Дата  | Чат юзера | Понравилось/Нет | Время прохождение маршрута| экспонат | Отзыв |
|        |           |                 |                           |          |       |   

По всем вопросам обращайтесь в лс в пачке или в тг (все для связи есть в пачке, смотеть туда) Дедлайн 13.08

Модели + проверка данных

Нужно описать модели для нашей базы данных (смотреть доку). Дедлайн - 13.08
По всем вопросам обращайтесь в лс в пачке или в тг (все для связи есть в пачке, смотеть туда)

Модели + проверка данных

Нужно описать модели для нашей базы данных (смотреть доку). Дедлайн - 13.08
По всем вопросам обращайтесь в лс в пачке или в тг (все для связи есть в пачке, смотеть туда)

Доработка бота

  • Добавить кнопки в бота
  • Поставить ограничения при выборе номеров для новых экспонатов в новых маршрутах
  • задание со звездочкой - для демонстрации заказчику сделать 4й маршрут со всеми вау-возможностями (звук, видео и т д ).

Реализация пошагового взаимодействия

Реализовать пошагового взаимодействия с пользователем(см. доку). Эта задача на троих ребят. Дедлайн 13.08
P.S пока не надо изобретать излишки, ждем пока черновой функционал, с фичами потом решим вопрос

https://miro.com/app/board/uXjVMvO98gw=/ вот нам Владислав разработал даже алгоритм, стоит ознакомиться
По всем вопросам обращайтесь в лс в пачке или в тг (все для связи есть в пачке, смотеть туда)

Реализация пошагового взаимодействия

Реализовать пошагового взаимодействия с пользователем(см. доку). Эта задача на троих ребят. Дедлайн 13.08
P.S пока не надо изобретать излишки, ждем пока черновой функционал, с фичами потом решим вопрос

https://miro.com/app/board/uXjVMvO98gw=/ вот нам Владислав разработал даже алгоритм, стоит ознакомиться
По всем вопросам обращайтесь в лс в пачке или в тг (все для связи есть в пачке, смотеть туда)

Описание endopint

создать список endopint, которые позволят передавать данные по маршрутам и экспонатам

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.