mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 20:24:03 +00:00
feat(bot): replace /invite with /join_link command
- Remove /invite command and targeted invite flow - Add /join_link command to generate shareable household join link - Update i18n translations for en and ru - Update command registration to include join_link in admin commands
This commit is contained in:
@@ -14,7 +14,7 @@ export const enBotTranslations: BotTranslationCatalog = {
|
||||
bind_feedback_topic: 'Bind the current topic as feedback',
|
||||
bind_reminders_topic: 'Bind the current topic as reminders',
|
||||
bind_payments_topic: 'Bind the current topic as payments',
|
||||
invite: 'Invite the replied user into this household',
|
||||
join_link: 'Get a shareable link for new members to join',
|
||||
payment_add: 'Record your rent or utilities payment',
|
||||
pending_members: 'List pending household join requests',
|
||||
approve_member: 'Approve a pending household member'
|
||||
@@ -126,28 +126,16 @@ export const enBotTranslations: BotTranslationCatalog = {
|
||||
usePendingMembersInGroup: 'Use /pending_members inside the household group.',
|
||||
useApproveMemberInGroup: 'Use /approve_member inside the household group.',
|
||||
approveMemberUsage: 'Usage: /approve_member <telegram_user_id>',
|
||||
useInviteInGroup: 'Use /invite as a reply inside the household group.',
|
||||
onlyInviteAdmins: 'Only Telegram group admins or household admins can invite members.',
|
||||
inviteUsage: 'Reply to a real user message with /invite.',
|
||||
inviteTargetInvalid: 'I can only prepare invites for real group members.',
|
||||
inviteAlreadyMember: (displayName, householdName) =>
|
||||
`${displayName} is already an active member of ${householdName}.`,
|
||||
inviteAlreadyPending: (displayName, householdName) =>
|
||||
`${displayName} already has a pending join request for ${householdName}.`,
|
||||
invitePrepared: (displayName, householdName) =>
|
||||
`Invitation prepared for ${displayName}. Tap below to join ${householdName}.`,
|
||||
invitePreparedToast: (displayName) => `Invite prepared for ${displayName}.`,
|
||||
inviteJoinWrongUser: 'This invite is for a different Telegram user.',
|
||||
inviteJoinExpired: 'This invite is no longer available.',
|
||||
inviteJoinCompleted: (displayName, householdName) =>
|
||||
`${displayName} completed the join flow for ${householdName}.`,
|
||||
inviteJoinRequestSent: (displayName, householdName) =>
|
||||
`${displayName} sent a join request for ${householdName}.`,
|
||||
approvedMember: (displayName, householdName) =>
|
||||
`Approved ${displayName} as an active member of ${householdName}.`,
|
||||
useButtonInGroup: 'Use this button in the household group.',
|
||||
unableToIdentifySelectedMember: 'Unable to identify the selected member.',
|
||||
approvedMemberToast: (displayName) => `Approved ${displayName}.`
|
||||
approvedMemberToast: (displayName) => `Approved ${displayName}.`,
|
||||
useJoinLinkInGroup: 'Use /join_link inside the household group.',
|
||||
joinLinkUnavailable: 'Could not generate join link.',
|
||||
joinLinkReady: (link, householdName) =>
|
||||
`Join link for ${householdName}:\n${link}\n\nAnyone with this link can join the household. Share it carefully.`
|
||||
},
|
||||
anonymousFeedback: {
|
||||
title: 'Anonymous household note',
|
||||
|
||||
@@ -14,7 +14,7 @@ export const ruBotTranslations: BotTranslationCatalog = {
|
||||
bind_feedback_topic: 'Назначить текущий топик для анонимных сообщений',
|
||||
bind_reminders_topic: 'Назначить текущий топик для напоминаний',
|
||||
bind_payments_topic: 'Назначить текущий топик для оплат',
|
||||
invite: 'Пригласить пользователя из сообщения в этот дом',
|
||||
join_link: 'Получить ссылку для приглашения новых участников',
|
||||
payment_add: 'Подтвердить оплату аренды или коммуналки',
|
||||
pending_members: 'Показать ожидающие заявки на вступление',
|
||||
approve_member: 'Подтвердить участника дома'
|
||||
@@ -128,28 +128,16 @@ export const ruBotTranslations: BotTranslationCatalog = {
|
||||
usePendingMembersInGroup: 'Используйте /pending_members внутри группы дома.',
|
||||
useApproveMemberInGroup: 'Используйте /approve_member внутри группы дома.',
|
||||
approveMemberUsage: 'Использование: /approve_member <telegram_user_id>',
|
||||
useInviteInGroup: 'Используйте /invite как ответ внутри группы дома.',
|
||||
onlyInviteAdmins: 'Приглашать участников могут только админы Telegram-группы или админы дома.',
|
||||
inviteUsage: 'Ответьте командой /invite на сообщение реального участника.',
|
||||
inviteTargetInvalid: 'Я могу подготовить приглашение только для реального участника группы.',
|
||||
inviteAlreadyMember: (displayName, householdName) =>
|
||||
`${displayName} уже является активным участником ${householdName}.`,
|
||||
inviteAlreadyPending: (displayName, householdName) =>
|
||||
`${displayName} уже отправил(а) заявку на вступление в ${householdName}.`,
|
||||
invitePrepared: (displayName, householdName) =>
|
||||
`Приглашение для ${displayName} готово. Нажмите кнопку ниже, чтобы вступить в ${householdName}.`,
|
||||
invitePreparedToast: (displayName) => `Приглашение для ${displayName} подготовлено.`,
|
||||
inviteJoinWrongUser: 'Это приглашение предназначено для другого пользователя Telegram.',
|
||||
inviteJoinExpired: 'Это приглашение больше недоступно.',
|
||||
inviteJoinCompleted: (displayName, householdName) =>
|
||||
`${displayName} завершил(а) вступление в ${householdName}.`,
|
||||
inviteJoinRequestSent: (displayName, householdName) =>
|
||||
`${displayName} отправил(а) заявку на вступление в ${householdName}.`,
|
||||
approvedMember: (displayName, householdName) =>
|
||||
`Участник ${displayName} подтверждён как активный участник ${householdName}.`,
|
||||
useButtonInGroup: 'Используйте эту кнопку в группе дома.',
|
||||
unableToIdentifySelectedMember: 'Не удалось определить выбранного участника.',
|
||||
approvedMemberToast: (displayName) => `${displayName} подтверждён.`
|
||||
approvedMemberToast: (displayName) => `${displayName} подтверждён.`,
|
||||
useJoinLinkInGroup: 'Используйте /join_link внутри группы дома.',
|
||||
joinLinkUnavailable: 'Не удалось сгенерировать ссылку для вступления.',
|
||||
joinLinkReady: (link, householdName) =>
|
||||
`Поделитесь этой ссылкой, чтобы пригласить участников в ${householdName}:\n\n${link}\n\nЛюбой, у кого есть эта ссылка, может подать заявку на вступление.`
|
||||
},
|
||||
anonymousFeedback: {
|
||||
title: 'Анонимное сообщение по дому',
|
||||
|
||||
@@ -12,7 +12,7 @@ export type TelegramCommandName =
|
||||
| 'bind_feedback_topic'
|
||||
| 'bind_reminders_topic'
|
||||
| 'bind_payments_topic'
|
||||
| 'invite'
|
||||
| 'join_link'
|
||||
| 'payment_add'
|
||||
| 'pending_members'
|
||||
| 'approve_member'
|
||||
@@ -29,7 +29,7 @@ export interface BotCommandDescriptions {
|
||||
bind_feedback_topic: string
|
||||
bind_reminders_topic: string
|
||||
bind_payments_topic: string
|
||||
invite: string
|
||||
join_link: string
|
||||
payment_add: string
|
||||
pending_members: string
|
||||
approve_member: string
|
||||
@@ -115,22 +115,14 @@ export interface BotTranslationCatalog {
|
||||
usePendingMembersInGroup: string
|
||||
useApproveMemberInGroup: string
|
||||
approveMemberUsage: string
|
||||
useInviteInGroup: string
|
||||
onlyInviteAdmins: string
|
||||
inviteUsage: string
|
||||
inviteTargetInvalid: string
|
||||
inviteAlreadyMember: (displayName: string, householdName: string) => string
|
||||
inviteAlreadyPending: (displayName: string, householdName: string) => string
|
||||
invitePrepared: (displayName: string, householdName: string) => string
|
||||
invitePreparedToast: (displayName: string) => string
|
||||
inviteJoinWrongUser: string
|
||||
inviteJoinExpired: string
|
||||
inviteJoinCompleted: (displayName: string, householdName: string) => string
|
||||
inviteJoinRequestSent: (displayName: string, householdName: string) => string
|
||||
approvedMember: (displayName: string, householdName: string) => string
|
||||
useButtonInGroup: string
|
||||
unableToIdentifySelectedMember: string
|
||||
approvedMemberToast: (displayName: string) => string
|
||||
useJoinLinkInGroup: string
|
||||
joinLinkUnavailable: string
|
||||
joinLinkReady: (link: string, householdName: string) => string
|
||||
}
|
||||
anonymousFeedback: {
|
||||
title: string
|
||||
|
||||
Reference in New Issue
Block a user