Example #1
0
def async_create_or_update_achievement(user_achievement: UserAchievement):
    user = user_achievement.user
    achievement = user_achievement.achievement

    # messages
    if user.is_club_member and user.telegram_id:
        if achievement.image:
            send_telegram_image(
                chat=Chat(id=user.telegram_id),
                image_url=achievement.image,
                text=render_html_message("achievement.html",
                                         user=user,
                                         achievement=achievement),
            )

    # emails
    if not user.is_email_unsubscribed:
        email_template = loader.get_template("emails/achievement.html")
        send_club_email(recipient=user.email,
                        subject=f"🏆 Вы получили ачивку «{achievement.name}»",
                        html=email_template.render({
                            "user": user,
                            "achievement": achievement
                        }),
                        tags=["achievement"])
Example #2
0
def announce_in_club_channel(post, announce_text=None, image=None):
    if not announce_text:
        announce_text = render_html_message("channel_post_announce.html",
                                            post=post)

    if image:
        send_telegram_image(
            chat=CLUB_CHANNEL,
            image_url=image,
            text=announce_text,
        )
    else:
        send_telegram_message(
            chat=CLUB_CHANNEL,
            text=announce_text,
            disable_preview=False,
            parse_mode=telegram.ParseMode.HTML,
        )
Example #3
0
def async_create_or_update_badge(user_badge: UserBadge):
    to_user = user_badge.to_user

    # messages
    if to_user.is_member and to_user.telegram_id:
        send_telegram_image(
            chat=Chat(id=to_user.telegram_id),
            image_url=
            f"{settings.APP_HOST}/static/images/badges/big/{user_badge.badge.code}.png",
            text=render_html_message("badge.html", user_badge=user_badge),
        )

    # emails
    if not to_user.is_email_unsubscribed:
        email_template = loader.get_template("emails/badge.html")
        send_club_email(
            recipient=to_user.email,
            subject=f"🏅 Вам подарили награду «{user_badge.badge.title}»",
            html=email_template.render({"user_badge": user_badge}),
            tags=["badge"])