Как подвести итоги розыгрыша через NocoDB

Официальное сообщество пользователей @puzzlebot 🤖 PuzzleBot — Многофункциональный веб-сервис для полноценной работы с ботами, каналами и группами в Telegram Сайт: https://puzzlebot.top Бот: @puzzlebot

NocoDBpuzzlebotрозыгрыш

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

1. Подготовка таблицы в NocoDB

Создаем таблицу и добавляем столбцы. Для проведения розыгрыша достаточно настроить всего одно поле, остальные данные можно собирать по желанию:

Обязательно:

  • ⚪️ {{username}} + {{user_id}} (тип: Single line text) — связка юзернейм и ID пользователя. Нужна для того, чтобы вы смогли связаться с победителем, даже если у него в профиле скрыт или не настроен username (тогда вы найдете его по ID). Именно это поле бот покажет при выборе победителя

Дополнительно (чтобы видеть информацию о пользователях):

  • ⚪️ {{first_name}}, {{last_name}} (тип: Single line text) — имя и фамилия пользователя

2. Настройка команды сбора данных

В конструкторе создаем команду с действием "Создать строку" и заполняем запись в таблице переменными:

{{USERNAME_TEXT}} 
{{USER_ID_TEXT}}
{{FIRST_NAME_TEXT}}
{{LAST_NAME_TEXT}}

Формула для составного поля:

"@" + {{USERNAME_TEXT}} + "(" + {{USER_ID}} + ")" 

3. Фиксация участников

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

4. Настройка переменных для выбора победителя

Переходим во вкладку "Переменные" и создаем две переменные:

  • ⚪️{{random}} (персональная, обычная переменная) — будет генерировать случайный номер строки таблицы

В выражении прописываем формулу: random(1, 517)

(*где 517 — это итоговое количество участников в вашей таблице)

  • ⚪️{{search_winner}} (персональная, интегрированная переменная) — по ней будем находить того, кто выиграл

Тип интеграции: HTTP запрос

⚪️Ссылка: https://nocodb.puzzlebot.top/api/v1/db/data/noco/номер_таблицы/номер_таблицы (номер берем из адресной строки)

⚪️Тип запроса: GET

⚪️ limit = 1 (сколько строк забираем)

⚪️ offset = {{random}} (какую строку берем)

Заголовок:

⚪️ Ключ: xc-token / Значение: [токен от nocodb]

5. Вывод результата

Заходим в конструктор и создаем скрытую админ-команду с текстом и инлайн-кнопкой. На кнопку настраиваем вызов команды с переменной {{search_winner}}, где и будет показан победитель

Останется перейти в бота, вызвать админ-команду и нажать на кнопку для отображения победителя

🌟 Такая настройка отлично подходит для регулярных конкурсов без использования сторонних рандомайзеров

Скриншот интерфейса NocoDB: таблица с записями участников розыгрыша, столбцы с username, user_id и другой информацией для выбора победителя через PuzzleBot.
Скриншот таблицы NocoDB с записями участников, используемой для выбора победителя.

Дискуссия

PuzzleBot :// Вход в Сообщество
👍 Сообщество пользователей @LovePuzzleBot 👈
Присоединиться к обсуждению →

Читайте так же