third one
This commit is contained in:
@ -86,19 +86,6 @@ def get_group(tg_chat: TgChat) -> Group:
|
|||||||
@bot.message_handler(commands=["start"])
|
@bot.message_handler(commands=["start"])
|
||||||
async def start(msg: Message):
|
async def start(msg: Message):
|
||||||
if msg.chat.type == "private":
|
if msg.chat.type == "private":
|
||||||
# if user := session.query(User).filter(User.id == msg.chat.id).first():
|
|
||||||
# await bot.send_message(
|
|
||||||
# chat_id=msg.chat.id,
|
|
||||||
# text=textbook.private_info.format(count=len(user.fund_members)),
|
|
||||||
# )
|
|
||||||
# else:
|
|
||||||
# user = User(
|
|
||||||
# id=msg.chat.id,
|
|
||||||
# name=msg.from_user.first_name,
|
|
||||||
# username=msg.from_user.username,
|
|
||||||
# )
|
|
||||||
# session.add(user)
|
|
||||||
# session.commit()
|
|
||||||
user = get_user(msg.from_user)
|
user = get_user(msg.from_user)
|
||||||
await bot.send_message(
|
await bot.send_message(
|
||||||
chat_id=msg.chat.id,
|
chat_id=msg.chat.id,
|
||||||
@ -352,6 +339,27 @@ async def contributed(call: types.CallbackQuery):
|
|||||||
reply_markup=keyboards.fund_markup(),
|
reply_markup=keyboards.fund_markup(),
|
||||||
parse_mode="html",
|
parse_mode="html",
|
||||||
)
|
)
|
||||||
|
if (
|
||||||
|
fund.members.count()
|
||||||
|
== fund.members.filter(FundMember.contributed == True).count()
|
||||||
|
):
|
||||||
|
setattr(fund, "active", False)
|
||||||
|
session.commit()
|
||||||
|
await bot.edit_message_text(
|
||||||
|
text=get_fund_text(fund),
|
||||||
|
chat_id=call.message.chat.id,
|
||||||
|
message_id=call.message.id,
|
||||||
|
reply_markup=None,
|
||||||
|
parse_mode="html",
|
||||||
|
)
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=call.message.chat.id,
|
||||||
|
text=textbook.fund_completed.format(
|
||||||
|
fund_name=fund.name,
|
||||||
|
owner_str=f'<a href="tg://user?id={fund.owner.id}">{fund.owner.name}</a>',
|
||||||
|
),
|
||||||
|
parse_mode="html",
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
await bot.answer_callback_query(
|
await bot.answer_callback_query(
|
||||||
callback_query_id=call.id,
|
callback_query_id=call.id,
|
||||||
@ -371,6 +379,38 @@ async def contributed(call: types.CallbackQuery):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bot.message_handler(commands=["remind"])
|
||||||
|
async def remind(msg: Message):
|
||||||
|
if msg.chat.type in ("group", "supergroup"):
|
||||||
|
group = get_group(msg.chat)
|
||||||
|
if (
|
||||||
|
fund := session.query(Fund)
|
||||||
|
.filter(Fund.group_id == group.id, Fund.active == True)
|
||||||
|
.first()
|
||||||
|
):
|
||||||
|
not_contributed = fund.members.filter(FundMember.contributed == False).all()
|
||||||
|
if len(not_contributed):
|
||||||
|
s = ""
|
||||||
|
for fm in not_contributed:
|
||||||
|
s += f'<a href="tg://user?id={fm.user.id}">{fm.user.name}</a>\n'
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=msg.chat.id,
|
||||||
|
text=textbook.remind.format(fund_name=fund.name, s=s),
|
||||||
|
parse_mode="html",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=msg.chat.id,
|
||||||
|
text=textbook.remind_already.format(fund_name=fund.name),
|
||||||
|
parse_mode="html",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=msg.chat.id,
|
||||||
|
text=textbook.fund_not_found,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bot.message_handler(commands=["mystate"])
|
@bot.message_handler(commands=["mystate"])
|
||||||
async def mystate(msg: Message):
|
async def mystate(msg: Message):
|
||||||
state = await bot.get_state(user_id=msg.from_user.id)
|
state = await bot.get_state(user_id=msg.from_user.id)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# start_private = "Привет, спасибо, что активировали меня в личных сообщениях! Теперь я смогу уведомлять вас о сборах, в которых вы забыли принять участие!"
|
# start_private = "Привет, спасибо, что активировали меня в личных сообщениях! Теперь я смогу уведомлять вас о сборах, в которых вы забыли принять участие!"
|
||||||
start_private = "Ты состоишь в {count} сборах, я уведомлю тебя в случае чего."
|
start_private = "Ты состоишь в {count} сборах, я уведомлю тебя в случае чего."
|
||||||
private_info = "Вы принимаете участие в {count} сборах!"
|
private_info = "Вы принимаете участие в {count} сборах!"
|
||||||
start_group = "Всем привет, я @waterfundbot! Я помогу собрать деньги на что угодно, уведомлю каждого о сборе в чате, напомню не скинувшим, и многое другое!\n\n Для начала админу чата необходимо прописать /setup. Появится сообщение, под которым будет кнопка - ее необходимо нажать всем, кто планирует участвовать в сборах в этом чате.\n\nНачать новый сбор /newfund\n\nТакже попрошу всех участвующих в сборах начать со мной диалог в личном чате, чтобы я мог уведомлять вас лично."
|
start_group = "Всем привет, я @waterfundbot! Я помогу собрать деньги на что угодно, уведомлю каждого о сборе в чате, напомню не скинувшим, и многое другое!\n\n Для начала админу чата необходимо прописать /setup. Появится сообщение, под которым будет кнопка - ее необходимо нажать всем, кто планирует участвовать в сборах в этом чате.\n\nНачать новый сбор - /newfund\nПингануть забывших скинуть - /remind\n\nТакже попрошу всех участвующих в сборах начать со мной диалог в личном чате, чтобы я мог уведомлять вас лично."
|
||||||
not_initialized = "Группа не инициализирована! Пропишите /start"
|
not_initialized = "Группа не инициализирована! Пропишите /start"
|
||||||
|
|
||||||
setup = "Все, кто планирует участвовать в сборах в этом чате, должны нажать на кнопочку ниже. Если вы передумали - нажмите еще раз, и вы откажетесь от участия."
|
setup = "Все, кто планирует участвовать в сборах в этом чате, должны нажать на кнопочку ниже. Если вы передумали - нажмите еще раз, и вы откажетесь от участия."
|
||||||
@ -27,3 +27,9 @@ not_fund_member = "Вы не являетесь участником этого
|
|||||||
|
|
||||||
contributed = "Вы отметились!"
|
contributed = "Вы отметились!"
|
||||||
already_contributed = "Вы уже отмечались ранее. Не забудьте уведомить создателя сбора, если вы решили отказаться от участия!"
|
already_contributed = "Вы уже отмечались ранее. Не забудьте уведомить создателя сбора, если вы решили отказаться от участия!"
|
||||||
|
remind = "На сбор <b>{fund_name}</b> еще не скинулсь:\n{s}"
|
||||||
|
remind_already = "На сбор <b>{fund_name}</b> уже все скинулись 🎉"
|
||||||
|
|
||||||
|
fund_completed = (
|
||||||
|
"Сбор <b>{fund_name}</b> завершен, поздравляю всех, и в особенности {owner_str} 🎉"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user