Skip to content

Commit 8d94f52

Browse files
committed
daily rewards
1 parent f8bde4c commit 8d94f52

File tree

5 files changed

+85
-2
lines changed

5 files changed

+85
-2
lines changed

src/flows/rewards/daily.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from datetime import datetime
2+
3+
from prefect import flow
4+
from telegram.constants import ParseMode
5+
6+
from src import localizer
7+
from src.tgbot.bot import bot
8+
from src.tgbot.handlers.treasury.constants import PAYOUTS, TrxType
9+
from src.tgbot.handlers.treasury.payments import pay_if_not_paid
10+
from src.tgbot.logs import log
11+
from src.tgbot.user_info import get_user_info
12+
13+
14+
@flow
15+
async def reward_user_for_daily_activity(user_id: int):
16+
user_info = await get_user_info(user_id)
17+
if user_info["memes_watched_today"] == 10:
18+
res = await pay_if_not_paid(
19+
user_id,
20+
TrxType.DAILY_REWARD,
21+
external_id=datetime.today().strftime("%Y-%m-%d"),
22+
)
23+
if res:
24+
msg = (
25+
localizer.t(
26+
"rewards.daily_reward",
27+
user_info["interface_lang"],
28+
).format(amount=PAYOUTS[TrxType.DAILY_REWARD]),
29+
)
30+
await bot.send_message(
31+
user_id,
32+
msg,
33+
parse_mode=ParseMode.HTML,
34+
)
35+
await log(msg)

src/flows/rewards/uploaded_memes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ async def reward_ru_users_for_weekly_top_uploaded_memes():
9696
enternal_id=today,
9797
)
9898

99-
await log_meme_sent(top_meme["id"], channel=Channel.TG_CHANNEL_RU)
100-
await update_meme(top_meme["id"], status=MemeStatus.PUBLISHED)
99+
await log_meme_sent(top_meme["meme_id"], channel=Channel.TG_CHANNEL_RU)
100+
await update_meme(top_meme["meme_id"], status=MemeStatus.PUBLISHED)
101101

102102
# send message to tgchannelru
103103

src/tgbot/handlers/reaction.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
ContextTypes,
1111
)
1212

13+
from src.flows.rewards.daily import reward_user_for_daily_activity
1314
from src.recommendations.service import (
1415
update_user_last_active_at,
1516
update_user_meme_reaction,
@@ -28,6 +29,7 @@ async def handle_reaction(update: Update, context: ContextTypes.DEFAULT_TYPE) ->
2829
# do that in sync since we'll use counters in next_message
2930
await update_user_info_counters(user_id)
3031
asyncio.create_task(update_user_last_active_at(user_id))
32+
asyncio.create_task(reward_user_for_daily_activity(user_id))
3133

3234
reaction_is_new = await update_user_meme_reaction(
3335
user_id=user_id,

src/tgbot/handlers/treasury/constants.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class TrxType(str, Enum):
1313
UPLOADER_TOP_WEEKLY_4 = "uploader_top_weekly_4"
1414
UPLOADER_TOP_WEEKLY_5 = "uploader_top_weekly_5"
1515

16+
DAILY_REWARD = "daily_reward"
17+
1618

1719
PAYOUTS = {
1820
TrxType.MEME_UPLOADER: 5,
@@ -24,6 +26,7 @@ class TrxType(str, Enum):
2426
TrxType.UPLOADER_TOP_WEEKLY_3: 200,
2527
TrxType.UPLOADER_TOP_WEEKLY_4: 100,
2628
TrxType.UPLOADER_TOP_WEEKLY_5: 50,
29+
TrxType.DAILY_REWARD: 1,
2730
}
2831

2932
# TODO: localize
@@ -37,4 +40,5 @@ class TrxType(str, Enum):
3740
TrxType.UPLOADER_TOP_WEEKLY_3: "weekly top 3 meme",
3841
TrxType.UPLOADER_TOP_WEEKLY_4: "weekly top 4 meme",
3942
TrxType.UPLOADER_TOP_WEEKLY_5: "weekly top 5 meme",
43+
TrxType.DAILY_REWARD: "daily activity",
4044
}

static/localization/rewards.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
rewards.daily_reward:
2+
en: |-
3+
💳 /b: +<b>{amount} 🍔</b>. It's your daily reward for watching memes ❤️
4+
ru: |-
5+
💳 /b: +<b>{amount} 🍔</b> за то, что посмотрели мемы сегодня ❤️
6+
uk: |-
7+
💳 /b: +<b>{amount} 🍔</b> за те, що переглянули меми сьогодні ❤️
8+
kz: |-
9+
💳 /b: +<b>{amount} 🍔</b> бұл сіздің мемелерді көру үшін күндізгі мүшелеріңіз ❤️
10+
be: |-
11+
💳 /b: +<b>{amount} 🍔</b> за тое, што паглядзелі мемы сёння ❤️
12+
kk: |-
13+
💳 /b: +<b>{amount} 🍔</b> сіздің мемелерді көру үшін күндізгі мүшелеріңіз ❤️
14+
uz: |-
15+
💳 /b: +<b>{amount} 🍔</b>. Siz bugungi kunda memlarni ko'rganingiz uchun ❤️
16+
tr: |-
17+
💳 /b: +<b>{amount} 🍔</b>. Bugün memelere baktığınız için ❤️
18+
es: |-
19+
💳 /b: +<b>{amount} 🍔</b>. Es tu recompensa diaria por ver memes ❤️
20+
pt-br: |-
21+
💳 /b: +<b>{amount} 🍔</b>. É a sua recompensa diária por ver memes ❤️
22+
pl: |-
23+
💳 /b: +<b>{amount} 🍔</b>. To twoja codzienna nagroda za oglądanie memów ❤️
24+
de: |-
25+
💳 /b: +<b>{amount} 🍔</b>. Es ist deine tägliche Belohnung für das Ansehen von Memes ❤️
26+
fr: |-
27+
💳 /b: +<b>{amount} 🍔</b>. C'est votre récompense quotidienne pour avoir regardé des mèmes ❤️
28+
id: |-
29+
💳 /b: +<b>{amount} 🍔</b>. Ini adalah hadiah harian Anda untuk menonton meme ❤️
30+
ar: |-
31+
💳 /b: +<b>{amount} 🍔</b>. إنها مكافأتك اليومية لمشاهدة الصور الساخرة ❤️
32+
fa: |-
33+
💳 /b: +<b>{amount} 🍔</b>. این پاداش روزانه شما برای تماشای میم‌هاست ❤️
34+
ja: |-
35+
💳 /b: +<b>{amount} 🍔</b>。これはミームを見るための毎日の報酬です ❤️
36+
zh: |-
37+
💳 /b: +<b>{amount} 🍔</b>。这是您每天观看表情包的奖励 ❤️
38+
ko: |-
39+
💳 /b: +<b>{amount} 🍔</b>. 미미를 보는 것에 대한 매일 보상입니다 ❤️
40+
vi: |-
41+
💳 /b: +<b>{amount} 🍔</b>. Đây là phần thưởng hàng ngày của bạn vì đã xem meme ❤️
42+

0 commit comments

Comments
 (0)