From c3af92f29bed23f4b8191f32103e71ba2190de68 Mon Sep 17 00:00:00 2001 From: Guzi422 <2445152525@qq.com> Date: Sun, 8 Sep 2024 21:24:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=86=8D=E6=AC=A1=E9=80=9A=E8=BF=87=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E7=9A=84=E6=AE=B5=E4=BD=8D=E6=97=B6=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E4=B8=8A=E4=BC=A0=E5=88=86=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- latest version/core/course.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/latest version/core/course.py b/latest version/core/course.py index d9b62e8..1eff7f1 100644 --- a/latest version/core/course.py +++ b/latest version/core/course.py @@ -1,5 +1,6 @@ from .error import NoData from .item import ItemFactory +from .score import Score from .song import Chart @@ -281,12 +282,13 @@ class CoursePlay(UserCourse): self.user_play.course_play_state += 1 - from .score import Score if Score.get_song_state(self.clear_type) > Score.get_song_state(self.user_play.clear_type): self.clear_type = self.user_play.clear_type self.user_play.update_play_state_for_course() if self.user_play.course_play_state == 4: + self.user.select_user_about_stamina() + self.items = [] if not self.is_completed: self.user.select_user_about_stamina() self.select_course_item() From 10a816b161bbf4db18ac35e7b0fe3dde34c6d1c8 Mon Sep 17 00:00:00 2001 From: Guzi422 <2445152525@qq.com> Date: Sun, 8 Sep 2024 22:07:59 +0800 Subject: [PATCH 2/2] [Enhance][Bug fix] User settings & /user/me/setting error - Add a new settings 'mp_notification_enabled' - Fix a bug that user can not change online settings. (Show Potential/Stamina Notification/Invite Notification) --- latest version/core/user.py | 19 ++++++++++++++++++- latest version/database/init/tables.sql | 3 ++- latest version/server/user.py | 3 ++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/latest version/core/user.py b/latest version/core/user.py index 1974764..89621fd 100644 --- a/latest version/core/user.py +++ b/latest version/core/user.py @@ -305,6 +305,7 @@ class UserInfo(User): self.recent_score = Score() self.favorite_character = None self.max_stamina_notification_enabled = False + self.mp_notification_enabled = False self.prog_boost: int = 0 self.beyond_boost_gauge: float = 0 self.kanae_stored_prog: float = 0 @@ -495,7 +496,8 @@ class UserInfo(User): "settings": { "favorite_character": favorite_character_id, "is_hide_rating": self.is_hide_rating, - "max_stamina_notification_enabled": self.max_stamina_notification_enabled + "max_stamina_notification_enabled": self.max_stamina_notification_enabled, + "mp_notification_enabled": self.mp_notification_enabled }, "user_id": self.user_id, "name": self.name, @@ -560,6 +562,7 @@ class UserInfo(User): self.favorite_character = None if x[23] == - \ 1 else UserCharacter(self.c, x[23]) self.max_stamina_notification_enabled = x[24] == 1 + self.mp_notification_enabled = x[37] == 1 self.current_map = Map(x[25]) if x[25] is not None else Map('') self.ticket = x[26] self.prog_boost = x[27] if x[27] is not None else 0 @@ -661,6 +664,20 @@ class UserInfo(User): self.rating_ptt = x[1] self.is_hide_rating = x[2] == 1 + def select_user_about_settings(self) -> None: + ''' + 查询 user 表有关设置的信息 + ''' + self.c.execute( + '''select is_hide_rating, max_stamina_notification_enabled, mp_notification_enabled from user where user_id=?''', (self.user_id,) + x = self.c.fetchone() + if not x: + raise NoData('No user.', 108, -3) + + self.is_hide_rating = x[0] == 1 + self.max_stamina_notification_enabled = x[1] == 1 + self.mp_notification_enabled = x[2] == 1 + @property def global_rank(self) -> int: '''用户世界排名,如果超过设定最大值,返回0''' diff --git a/latest version/database/init/tables.sql b/latest version/database/init/tables.sql index a2bb234..8d827d1 100644 --- a/latest version/database/init/tables.sql +++ b/latest version/database/init/tables.sql @@ -35,7 +35,8 @@ max_stamina_ts int, stamina int, world_mode_locked_end_ts int, beyond_boost_gauge real default 0, -kanae_stored_prog real default 0 +kanae_stored_prog real default 0, +mp_notification_enabled int ); create table if not exists login(access_token text, user_id int, diff --git a/latest version/server/user.py b/latest version/server/user.py index c56f792..9adf41d 100644 --- a/latest version/server/user.py +++ b/latest version/server/user.py @@ -157,7 +157,8 @@ def sys_set(user_id, set_arg): user.change_favorite_character(int(value)) else: value = 'true' == value - if set_arg in ('is_hide_rating', 'max_stamina_notification_enabled'): + if set_arg in ('is_hide_rating', 'max_stamina_notification_enabled', 'mp_notification_enabled'): + user.select_user_about_settings() user.update_user_one_column(set_arg, value) return success_return(user.to_dict())