Add poll management and delivery system

This commit is contained in:
Egor
2025-10-23 05:28:13 +03:00
parent fbe7febdde
commit 93554c7034
11 changed files with 1856 additions and 18 deletions

View File

@@ -1375,5 +1375,50 @@
"SIMPLE_SUBSCRIPTION_SERVER_ANY": "Any available",
"SIMPLE_SUBSCRIPTION_SERVER_SELECTED": "Selected",
"SIMPLE_SUBSCRIPTION_SERVER_ASSIGNED": "Assigned automatically",
"MENU_SIMPLE_SUBSCRIPTION": "⚡ Quick purchase"
"MENU_SIMPLE_SUBSCRIPTION": "⚡ Quick purchase",
"ADMIN_COMMUNICATIONS_POLLS": "🗳️ Polls",
"ADMIN_POLLS_CREATE": " Create poll",
"ADMIN_POLLS_REWARD_ENABLED": "Reward: {amount}",
"ADMIN_POLLS_REWARD_DISABLED": "Reward disabled",
"ADMIN_POLLS_SEND": "📤 Send",
"ADMIN_POLLS_STATS": "📊 Stats",
"ADMIN_POLLS_DELETE": "🗑️ Delete",
"ADMIN_POLLS_BACK": "⬅️ Back to list",
"ADMIN_POLLS_CUSTOM_TARGET": "⚙️ Custom filters",
"ADMIN_POLLS_SEND_CONFIRM_BUTTON": "✅ Send",
"ADMIN_POLLS_LIST_TITLE": "🗳️ <b>Polls</b>",
"ADMIN_POLLS_LIST_EMPTY": "No polls yet.",
"ADMIN_POLLS_QUESTIONS_COUNT": "Questions: {count}",
"ADMIN_POLLS_CREATION_TITLE_PROMPT": "🗳️ <b>Create poll</b>\n\nEnter poll title:",
"ADMIN_POLLS_CREATION_CANCELLED": "❌ Poll creation cancelled.",
"ADMIN_POLLS_CREATION_DESCRIPTION_PROMPT": "Enter poll description. HTML is allowed.\nSend /skip to omit.",
"ADMIN_POLLS_CREATION_INVALID_HTML": "❌ HTML error: {error}",
"ADMIN_POLLS_CREATION_REWARD_PROMPT": "Enter reward amount in RUB. Send 0 to disable reward.",
"ADMIN_POLLS_CREATION_REWARD_INVALID": "❌ Invalid amount. Try again.",
"ADMIN_POLLS_CREATION_QUESTION_PROMPT": "Send the question and answer options.\nEach line is a separate option.\nThe first line is the question text.\nSend /done when finished.",
"ADMIN_POLLS_CREATION_NEEDS_QUESTION": "❌ Add at least one question.",
"ADMIN_POLLS_CREATION_FINISHED": "✅ Poll “{title}” created. Questions: {count}. {reward}",
"ADMIN_POLLS_CREATION_MIN_OPTIONS": "❌ Provide a question and at least two answer options.",
"ADMIN_POLLS_CREATION_ADDED_QUESTION": "Question added: “{question}”. Add another question or send /done.",
"ADMIN_POLLS_QUESTION_LIST_HEADER": "<b>Questions:</b>",
"ADMIN_POLLS_OPTION_BULLET": " • {option}",
"ADMIN_POLLS_SEND_CHOOSE_TARGET": "🎯 Select audience for the poll:",
"ADMIN_POLLS_CUSTOM_PROMPT": "Choose an additional audience filter:",
"ADMIN_POLLS_SEND_CONFIRM": "📤 Send poll “{title}” to “{audience}”? Users: {count}",
"ADMIN_POLLS_SENDING": "📤 Sending poll...",
"ADMIN_POLLS_SEND_RESULT": "📤 Poll finished\nDelivered: {sent}\nFailed: {failed}\nSkipped: {skipped}\nTotal: {total}",
"ADMIN_POLLS_STATS_HEADER": "📊 <b>Poll statistics</b>",
"ADMIN_POLLS_STATS_OVERVIEW": "Invited: {total}\nCompleted: {completed}\nRewards paid: {reward}",
"ADMIN_POLLS_STATS_OPTION_LINE": "• {option}: {count}",
"ADMIN_POLLS_CONFIRM_DELETE": "Delete poll “{title}”?",
"ADMIN_POLLS_DELETED": "🗑️ Poll deleted.",
"POLL_INVITATION_REWARD": "🎁 You will receive {amount} for participating.",
"POLL_INVITATION_START": "Tap the button below to answer the poll.",
"POLL_START_BUTTON": "📝 Take the poll",
"POLL_QUESTION_HEADER": "<b>Question {current}/{total}</b>",
"POLL_ALREADY_COMPLETED": "You have already completed this poll.",
"POLL_EMPTY": "Poll is not available yet.",
"POLL_ERROR": "Unable to process the poll. Please try again later.",
"POLL_COMPLETED": "🙏 Thanks for completing the poll!",
"POLL_REWARD_GRANTED": "Reward {amount} has been credited to your balance."
}

View File

@@ -1375,5 +1375,50 @@
"SIMPLE_SUBSCRIPTION_SERVER_ANY": "Любой доступный",
"SIMPLE_SUBSCRIPTION_SERVER_SELECTED": "Выбранный",
"SIMPLE_SUBSCRIPTION_SERVER_ASSIGNED": "Назначен автоматически",
"MENU_SIMPLE_SUBSCRIPTION": "⚡ Простая покупка"
"MENU_SIMPLE_SUBSCRIPTION": "⚡ Простая покупка",
"ADMIN_COMMUNICATIONS_POLLS": "🗳️ Опросы",
"ADMIN_POLLS_CREATE": " Создать опрос",
"ADMIN_POLLS_REWARD_ENABLED": "Награда: {amount}",
"ADMIN_POLLS_REWARD_DISABLED": "Награда отключена",
"ADMIN_POLLS_SEND": "📤 Отправить",
"ADMIN_POLLS_STATS": "📊 Статистика",
"ADMIN_POLLS_DELETE": "🗑️ Удалить",
"ADMIN_POLLS_BACK": "⬅️ К списку",
"ADMIN_POLLS_CUSTOM_TARGET": "⚙️ По критериям",
"ADMIN_POLLS_SEND_CONFIRM_BUTTON": "✅ Отправить",
"ADMIN_POLLS_LIST_TITLE": "🗳️ <b>Опросы</b>",
"ADMIN_POLLS_LIST_EMPTY": "Опросов пока нет.",
"ADMIN_POLLS_QUESTIONS_COUNT": "Вопросов: {count}",
"ADMIN_POLLS_CREATION_TITLE_PROMPT": "🗳️ <b>Создание опроса</b>\n\nВведите заголовок опроса:",
"ADMIN_POLLS_CREATION_CANCELLED": "❌ Создание опроса отменено.",
"ADMIN_POLLS_CREATION_DESCRIPTION_PROMPT": "Введите описание опроса. HTML разрешён.\nОтправьте /skip, чтобы пропустить.",
"ADMIN_POLLS_CREATION_INVALID_HTML": "❌ Ошибка в HTML: {error}",
"ADMIN_POLLS_CREATION_REWARD_PROMPT": "Введите сумму награды в рублях. Отправьте 0 чтобы отключить награду.",
"ADMIN_POLLS_CREATION_REWARD_INVALID": "❌ Некорректная сумма. Попробуйте ещё раз.",
"ADMIN_POLLS_CREATION_QUESTION_PROMPT": "Введите вопрос и варианты ответов.\nКаждая строка — отдельный вариант.\nПервая строка — текст вопроса.\nОтправьте /done, когда вопросы будут добавлены.",
"ADMIN_POLLS_CREATION_NEEDS_QUESTION": "❌ Добавьте хотя бы один вопрос.",
"ADMIN_POLLS_CREATION_FINISHED": "✅ Опрос «{title}» создан. Вопросов: {count}. {reward}",
"ADMIN_POLLS_CREATION_MIN_OPTIONS": "❌ Нужен вопрос и минимум два варианта ответа.",
"ADMIN_POLLS_CREATION_ADDED_QUESTION": "Вопрос добавлен: «{question}». Добавьте следующий вопрос или отправьте /done.",
"ADMIN_POLLS_QUESTION_LIST_HEADER": "<b>Вопросы:</b>",
"ADMIN_POLLS_OPTION_BULLET": " • {option}",
"ADMIN_POLLS_SEND_CHOOSE_TARGET": "🎯 Выберите аудиторию для отправки опроса:",
"ADMIN_POLLS_CUSTOM_PROMPT": "Выберите дополнительный критерий аудитории:",
"ADMIN_POLLS_SEND_CONFIRM": "📤 Отправить опрос «{title}» аудитории «{audience}»? Пользователей: {count}",
"ADMIN_POLLS_SENDING": "📤 Запускаю отправку опроса...",
"ADMIN_POLLS_SEND_RESULT": "📤 Отправка завершена\nУспешно: {sent}\nОшибок: {failed}\nПропущено: {skipped}\nВсего: {total}",
"ADMIN_POLLS_STATS_HEADER": "📊 <b>Статистика опроса</b>",
"ADMIN_POLLS_STATS_OVERVIEW": "Всего приглашено: {total}\nЗавершили: {completed}\nВыплачено наград: {reward}",
"ADMIN_POLLS_STATS_OPTION_LINE": "• {option}: {count}",
"ADMIN_POLLS_CONFIRM_DELETE": "Вы уверены, что хотите удалить опрос «{title}»?",
"ADMIN_POLLS_DELETED": "🗑️ Опрос удалён.",
"POLL_INVITATION_REWARD": "🎁 За участие вы получите {amount}.",
"POLL_INVITATION_START": "Нажмите кнопку ниже, чтобы пройти опрос.",
"POLL_START_BUTTON": "📝 Пройти опрос",
"POLL_QUESTION_HEADER": "<b>Вопрос {current}/{total}</b>",
"POLL_ALREADY_COMPLETED": "Вы уже прошли этот опрос.",
"POLL_EMPTY": "Опрос пока недоступен.",
"POLL_ERROR": "Не удалось обработать опрос. Попробуйте позже.",
"POLL_COMPLETED": "🙏 Спасибо за участие в опросе!",
"POLL_REWARD_GRANTED": "Награда {amount} зачислена на ваш баланс."
}