Навык для Алисы "Дринк Пати"
Всем привет! Это домашняя страница навыка для Алисы «Дринк Пати» (Алкогольная Рулетка). Здесь вы сможете найти всю интересующую вас информацию, вплоть до исходного кода. Главное не забывайте, игра не предназначена для детей (СТРОГО +18) и рассчитана на компанию от двух и более человек.
Описание
Дринк Пати — это игра для компании друзей на вечеринке, которые уже изрядно наглотавшись горячительных напитков, захотели немножко посмеяться или же наоборот — «догнаться».
Суть игры: Алиса дает задание или задает вопрос, вы должны или выполнить задание или ответить на вопрос. В случае, если вы этого не сделали, должны выпить алкогольный напиток (любой на ваш выбор). У вас на ответ-действие будет 20 секунд, за это время вы должны успеть выпить, посмеяться, ещё раз выпить (шучу). После чего Алиса (колонка) поинтересуется: "Продолжим?", - если скажите "Да" - задаст следующий вопрос, иначе подождет и переспросит через 20 секунд. И так далее, пока все не уснут в салате).
Вопросы разные, но так или иначе связаны с "ночными откровениями". Да, может быть это и пошло, но алкоголь раскрепощает (чрезмерное употребление алкоголя негативно скажется на вашем здоровье).
Пример вопроса: "{Имя Игрока}, мы сгораем от любопытства! Расскажи, каким был твой первый раз, и выпей."
Пример задания: "{Имя Игрока}, лайкни в Instagram фотку кого-то из своих бывших или же пей до дна!"
А для кого это?
Для веселой компании друзей конечно же. Изначально, когда я готовился к новому году в компании друзей, искал подобное приложение для телефона, но все они были платные и стояли нереальных каких-то денег (подписка 400р в неделю), и вопросы были "неуместные", если честно. Так и родилась идея создать свое приложение, для своей компании друзей, с вопросами и заданиями, которые будут интересны русскоговорящей аудитории. А теперь я делюсь этим приложением с вами.
Под капотом...
Алгоритм
Написан навык на Python 3 с использованием библиотеки Flask, работает все на сервере Nginx + Gunicorn. Запуск приложения через Supervisor.
Алгоритм сценария представлен ниже:
Структурная схема сценария навыка
Ссылка на схему -> www.figma.com АЛИСА_НАВЫК.
Ссылка на исходный код -> gist.github.com/telnex/
Структура базы данных
BEGIN TRANSACTION; CREATE TABLE IF NOT EXISTS "USERS" ( "ID" INTEGER NOT NULL UNIQUE, "SESSION" TEXT NOT NULL, "USER_ID" TEXT, "TIME" INTEGER, "NAMES" TEXT, PRIMARY KEY("ID") ); CREATE TABLE IF NOT EXISTS "challenge" ( "id" INTEGER NOT NULL UNIQUE, "title" TEXT, "text" TEXT, "like" INTEGER, "dislike" INTEGER, PRIMARY KEY("id") ); COMMIT;
Разработка велась на локальном ПК в IDE pyCharm, при этом запросы шли через Яндекс на мой сервер (https, Flask), а далее через модуль request (http) на мой домашний ПК.
@app.route('/alisa', methods=["POST"]) def test(): url = "http://ip_PC:5000/yandexAlice" req = request.json x = requests.post(url, json=req) return x.text
Реализовал схему так, потому что не хотелось поднимать на домашнем ПК сервер и настраивать ssl. К тому же в таком случае была бы недоступна отладка через IDE (дебаг режим).
Всего в базе на текущий момент около 70 вопросов/заданий, однако у меня в запасе ещё около 500 в наличии, нужно их немного проработать и адаптировать к текущим реалиям. Постепенно буду пополнять ими общую базу.
P.S. Так же данный навык реализован в виде telegram бота @drinkpartybot, здесь уже база вопросов более 2к.