Skip to content

Commit ec760af

Browse files
committed
Update reward fixes.
1 parent 0b4bc8c commit ec760af

File tree

2 files changed

+36
-20
lines changed

2 files changed

+36
-20
lines changed

scripts/migrations/5_send_subunit_rewards.py

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,10 @@
33
import sqlalchemy
44

55
import npps4.idol
6-
import npps4.db.main
7-
import npps4.system.achievement
8-
import npps4.system.advanced
9-
import npps4.system.user
106

117
revision = "5_send_subunit_rewards"
128
prev_revision = "4_update_achievement_reset_type"
139

14-
FIXES_ACHIEVEMENT_IDS = [10090010, *range(10090012, 10090019)]
15-
1610

1711
async def main(context: npps4.idol.BasicSchoolIdolContext):
18-
q = sqlalchemy.select(npps4.db.main.Achievement).where(
19-
npps4.db.main.Achievement.achievement_id.in_(FIXES_ACHIEVEMENT_IDS),
20-
npps4.db.main.Achievement.is_accomplished == True,
21-
npps4.db.main.Achievement.is_reward_claimed == False,
22-
)
23-
24-
async for ach in (await context.db.main.stream(q)).scalars():
25-
user = await npps4.system.user.get(context, ach.user_id)
26-
if user is None:
27-
continue
28-
29-
rewards = await npps4.system.achievement.get_achievement_rewards(context, ach)
30-
for reward in rewards:
31-
await npps4.system.advanced.add_item(context, user, reward)
12+
pass
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import npps4.script_dummy # isort:skip
2+
3+
import sqlalchemy
4+
5+
import npps4.idol
6+
import npps4.db.main
7+
import npps4.system.achievement
8+
import npps4.system.advanced
9+
import npps4.system.user
10+
11+
revision = "6_send_subunit_rewards_take2"
12+
prev_revision = "5_send_subunit_rewards"
13+
14+
FIXES_ACHIEVEMENT_IDS = [10090010, *range(10090012, 10090019)]
15+
16+
17+
async def main(context: npps4.idol.BasicSchoolIdolContext):
18+
q = sqlalchemy.select(npps4.db.main.Achievement).where(
19+
npps4.db.main.Achievement.achievement_id.in_(FIXES_ACHIEVEMENT_IDS),
20+
npps4.db.main.Achievement.is_accomplished == True,
21+
npps4.db.main.Achievement.is_reward_claimed == True,
22+
)
23+
24+
async for ach in (await context.db.main.stream(q)).scalars():
25+
user = await npps4.system.user.get(context, ach.user_id)
26+
if user is None:
27+
continue
28+
29+
rewards = await npps4.system.achievement.get_achievement_rewards(context, ach)
30+
for reward in rewards:
31+
result = await npps4.system.advanced.add_item(context, user, reward)
32+
print(
33+
f"Give reward ({reward.add_type.value, reward.item_id})x{reward.amount} to user {user.id} by ach {ach.achievement_id}",
34+
"successful" if result.success else "unsuccessful",
35+
)

0 commit comments

Comments
 (0)