From 4304e7534aa95360f0e9c1c60c9c4bf2f887ea31 Mon Sep 17 00:00:00 2001 From: mx57 <38256814+mx57@users.noreply.github.com> Date: Wed, 8 Jul 2026 05:33:42 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Perf=20&=20=E2=9C=A8=20Complete:=20?= =?UTF-8?q?Batch=20updates=20and=20Activity=20History?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added `update_stats_batch` to `DataStore` for atomic SQLite updates. - Refactored `StatsDialog` with `QTabWidget` and added "History" tab. - Implemented `log_event` calls across the app for key interactions. - Optimized `InputManager.flush_all` to use the new batch method. - Verified changes with automated tests and UI screenshots. --- .jules/bolt.md | 8 ++ src/core/input_manager.py | 31 ++++--- src/ui/stats_dialog.py | 78 +++++++++++++----- src/ui/tray_menu.py | 6 ++ src/utils/data_store.py | 23 ++++++ verification/screenshots/stats_dialog.png | Bin 0 -> 41884 bytes .../screenshots/stats_dialog_history.png | Bin 0 -> 13161 bytes .../screenshots/stats_dialog_progress.png | Bin 0 -> 41884 bytes verify_ui.py | 48 +++++++++++ 9 files changed, 162 insertions(+), 32 deletions(-) create mode 100644 verification/screenshots/stats_dialog.png create mode 100644 verification/screenshots/stats_dialog_history.png create mode 100644 verification/screenshots/stats_dialog_progress.png create mode 100644 verify_ui.py diff --git a/.jules/bolt.md b/.jules/bolt.md index 2eea3c9..c35890c 100644 --- a/.jules/bolt.md +++ b/.jules/bolt.md @@ -54,3 +54,11 @@ ## 2026-07-03 - [State Reset Logic for Idle States] **Инсайт:** При введении новых фоновых состояний (thinking, sleeping) важно обеспечить их мгновенный сброс при любом пользовательском вводе. Отсутствие централизованного метода сброса ведет к дублированию кода в handle_key и handle_mouse. **Действие:** Использовать вспомогательный метод `_reset_idle_state()` для перевода питомца из пассивных состояний в 'idle' при активности пользователя. + +## 2026-07-04 - [Atomic Batch Updates for Statistics] +**Инсайт:** Использование отдельных SQL-запросов для обновления каждой характеристики (очки, клики, KPS) при сбросе буфера (flush) неэффективно. Группировка всех обновлений в одну транзакцию через BEGIN TRANSACTION/COMMIT (метод update_stats_batch) значительно снижает нагрузку на диск и гарантирует атомарность данных. +**Действие:** При необходимости обновления нескольких полей в БД SQLite (например, при сбросе игрового прогресса из памяти) всегда использовать транзакционный пакетный метод вместо последовательных вызовов increment_stat. + +## 2026-07-04 - [Activity History for User Engagement] +**Инсайт:** Пользователи ценят возможность видеть историю своих действий (кормление, достижения). Разделение статистики на «Прогресс» и «Историю» через QTabWidget позволяет сохранить компактность окна, предоставляя при этом больше информации. +**Действие:** Для логов и списков истории использовать QTabWidget с QListWidget, чтобы не перегружать основной экран статистики. diff --git a/src/core/input_manager.py b/src/core/input_manager.py index a626371..333290e 100644 --- a/src/core/input_manager.py +++ b/src/core/input_manager.py @@ -170,6 +170,8 @@ def add_points(self, points): self.flush_points() # Обязательно сбрасываем перед уведомлением self.window.show_message(f"Уровень дружбы повышен: {new_level} ❤️") self.window.sound_manager.play_sound("happy") + if self.db: + self.db.log_event("level_up", f"Достигнут уровень {new_level}") self.check_for_achievements() def flush_points(self): @@ -181,25 +183,31 @@ def flush_all(self): if not self.db: return - if self.pending_points > 0: - self.db.add_affection_points(self.pending_points) - self.last_affection_points += self.pending_points - self.stats_cache["bonding_points"] = self.last_affection_points - self.pending_points = 0 + if hasattr(self.db, 'update_stats_batch'): + self.db.update_stats_batch(self.pending_points, self.pending_stats, self.max_kps) + else: + # Fallback для старой версии БД + if self.pending_points > 0: + self.db.add_affection_points(self.pending_points) + for key, value in self.pending_stats.items(): + if value > 0: + self.db.increment_stat(key, value) + if hasattr(self.db, 'set_stat'): + self.db.set_stat("max_kps", self.max_kps) + + # Обновляем локальные кэши + self.last_affection_points += self.pending_points + self.stats_cache["bonding_points"] = self.last_affection_points + self.pending_points = 0 for key, value in self.pending_stats.items(): if value > 0: - self.db.increment_stat(key, value) if key == "total_clicks": self.total_clicks_cache += value - - # Обновляем кэш вручную вместо дорогого get_all_stats() self.stats_cache[key] = self.stats_cache.get(key, 0) + value self.pending_stats[key] = 0 - if hasattr(self.db, 'set_stat'): - self.db.set_stat("max_kps", self.max_kps) - self.stats_cache["max_kps"] = self.max_kps + self.stats_cache["max_kps"] = self.max_kps def add_shake(self): """Регистрирует встряхивание котика.""" @@ -240,6 +248,7 @@ def check_for_achievements(self): self.unlocked_achievements.append(ach_id) self.db.add_achievement(ach_id) ach = ACHIEVEMENTS[ach_id] + self.db.log_event("achievement", f"Открыто достижение: {ach['title']}") self.window.show_message(f"Достижение: {ach['icon']} {ach['title']}", duration=5000) self.window.sound_manager.play_sound("happy") diff --git a/src/ui/stats_dialog.py b/src/ui/stats_dialog.py index 30961ba..5510591 100644 --- a/src/ui/stats_dialog.py +++ b/src/ui/stats_dialog.py @@ -1,4 +1,5 @@ -from PySide6.QtWidgets import QDialog, QVBoxLayout, QLabel, QProgressBar, QPushButton, QHBoxLayout, QScrollArea, QWidget +from PySide6.QtWidgets import (QDialog, QVBoxLayout, QLabel, QProgressBar, + QPushButton, QHBoxLayout, QScrollArea, QWidget, QTabWidget, QListWidget, QListWidgetItem) from PySide6.QtCore import Qt from src.utils.bonding_utils import get_level_info, ACHIEVEMENTS @@ -6,31 +7,53 @@ class StatsDialog(QDialog): def __init__(self, db, parent=None): super().__init__(parent) self.db = db - self.setWindowTitle("Статистика привязанности") - self.setFixedWidth(300) + self.setWindowTitle("Статистика Котика") + self.setFixedWidth(350) layout = QVBoxLayout(self) + self.tabs = QTabWidget() + layout.addWidget(self.tabs) + + # Вкладка 1: Прогресс и Достижения + self.progress_tab = QWidget() + self.setup_progress_tab() + self.tabs.addTab(self.progress_tab, "🎯 Прогресс") + + # Вкладка 2: История активности + self.history_tab = QWidget() + self.setup_history_tab() + self.tabs.addTab(self.history_tab, "📜 История") + + # Кнопка закрытия + close_btn = QPushButton("Закрыть") + close_btn.clicked.connect(self.accept) + layout.addWidget(close_btn) + + def setup_progress_tab(self): + layout = QVBoxLayout(self.progress_tab) + points = self.db.get_affection_points() level, title, points_in_level, points_for_next_level = get_level_info(points) # Заголовок title_label = QLabel(f"Уровень {level}: {title}") title_label.setAlignment(Qt.AlignCenter) - title_label.setStyleSheet("font-size: 16px; font-weight: bold; margin-bottom: 10px;") + title_label.setStyleSheet("font-size: 16px; font-weight: bold; margin-bottom: 5px;") layout.addWidget(title_label) - # Общие очки - points_label = QLabel(f"Всего очков: {points} ❤️") - points_label.setAlignment(Qt.AlignCenter) - layout.addWidget(points_label) + # Общие очки и KPS в одной строке + stats_row = QHBoxLayout() + points_label = QLabel(f"Всего: {points} ❤️") - # Макс скорость печати max_kps = self.db.get_stat("max_kps") - kps_label = QLabel(f"Макс. скорость: {max_kps} кл/сек ⚡") - kps_label.setAlignment(Qt.AlignCenter) - kps_label.setStyleSheet("color: #555; font-size: 11px;") - layout.addWidget(kps_label) + kps_label = QLabel(f"Макс: {max_kps} кл/сек ⚡") + kps_label.setStyleSheet("color: #555;") + + stats_row.addWidget(points_label) + stats_row.addStretch() + stats_row.addWidget(kps_label) + layout.addLayout(stats_row) # Прогресс бар if points_for_next_level > 0: @@ -43,7 +66,7 @@ def __init__(self, db, parent=None): else: layout.addWidget(QLabel("Максимальный уровень достигнут! 🎉")) - layout.addSpacing(20) + layout.addSpacing(10) # Раздел достижений layout.addWidget(QLabel("Достижения:")) @@ -72,7 +95,6 @@ def __init__(self, db, parent=None): # Расчет прогресса progress_text = "" if not is_unlocked and 'goal' in ach_info and 'stat' in ach_info: - # Если у нас есть InputManager, берем актуальные данные (включая буфер) if self.parent() and hasattr(self.parent(), 'input_manager') and self.parent().input_manager: im = self.parent().input_manager if ach_info['stat'] == 'bonding_points': @@ -102,12 +124,26 @@ def __init__(self, db, parent=None): scroll_layout.addWidget(ach_widget) scroll.setWidget(scroll_content) - scroll.setFixedHeight(250) + scroll.setFixedHeight(200) layout.addWidget(scroll) - layout.addSpacing(20) + def setup_history_tab(self): + layout = QVBoxLayout(self.history_tab) - # Кнопка закрытия - close_btn = QPushButton("Закрыть") - close_btn.clicked.connect(self.accept) - layout.addWidget(close_btn) + history_list = QListWidget() + activities = self.db.get_recent_activity(20) + + for activity in activities: + # activity format: (id, timestamp, event_type, description) + _, ts, event, desc = activity + # Убираем секунды для компактности + time_str = ts.split(" ")[1][:5] if " " in ts else ts + + item = QListWidgetItem(f"[{time_str}] {desc}") + item.setToolTip(f"{ts}\nТип: {event}") + history_list.addItem(item) + + if not activities: + history_list.addItem("История пока пуста...") + + layout.addWidget(history_list) diff --git a/src/ui/tray_menu.py b/src/ui/tray_menu.py index b4f5979..80ef58a 100644 --- a/src/ui/tray_menu.py +++ b/src/ui/tray_menu.py @@ -118,11 +118,15 @@ def start_work_timer(self, checked=False): if self.window.timer_system: self.window.timer_system.start_pomodoro("work") self.window.show_message("Пора работать! 🛠") + if self.window.input_manager and self.window.input_manager.db: + self.window.input_manager.db.log_event("pomodoro_start", "Начата сессия работы") def start_break_timer(self, checked=False): if self.window.timer_system: self.window.timer_system.start_pomodoro("break") self.window.show_message("Отдыхаем! ☕") + if self.window.input_manager and self.window.input_manager.db: + self.window.input_manager.db.log_event("pomodoro_break", "Начат перерыв") def show_settings(self, checked=False): dialog = SettingsDialog(self.window.config, self.window) @@ -147,6 +151,8 @@ def feed_pet(self, checked=False): self.window.input_manager.add_points(5) self.window.show_message("Мням! +5 ❤️") self.window.input_manager.pending_stats["total_feedings"] += 1 + if self.window.input_manager.db: + self.window.input_manager.db.log_event("feed", "Котик покормлен") self.window.input_manager.check_for_achievements() def toggle_laser(self, checked): diff --git a/src/utils/data_store.py b/src/utils/data_store.py index b7021e4..6599ef6 100644 --- a/src/utils/data_store.py +++ b/src/utils/data_store.py @@ -116,6 +116,29 @@ def set_stat(self, key, value): cursor.execute('INSERT OR REPLACE INTO stats (key, value) VALUES (?, ?)', (key, value)) self.conn.commit() + def update_stats_batch(self, points, stats_dict, max_kps): + """Обновляет очки привязанности, статистику и макс. KPS в одной транзакции.""" + if not self.conn: + self.init_db() + + try: + cursor = self.conn.cursor() + cursor.execute('BEGIN TRANSACTION') + + if points > 0: + cursor.execute('UPDATE stats SET value = value + ? WHERE key = "bonding_points"', (points,)) + + for key, value in stats_dict.items(): + if value > 0: + cursor.execute('UPDATE stats SET value = value + ? WHERE key = ?', (value, key)) + + cursor.execute('INSERT OR REPLACE INTO stats (key, value) VALUES ("max_kps", ?)', (max_kps,)) + + self.conn.commit() + except Exception as e: + self.conn.rollback() + print(f"Error in update_stats_batch: {e}") + def add_achievement(self, ach_id): if not self.conn: self.init_db() diff --git a/verification/screenshots/stats_dialog.png b/verification/screenshots/stats_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..6a10c4cacc9e2795a76eb3e2eba81a018d60ceef GIT binary patch literal 41884 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 Dkk5-l literal 0 HcmV?d00001 diff --git a/verification/screenshots/stats_dialog_history.png b/verification/screenshots/stats_dialog_history.png new file mode 100644 index 0000000000000000000000000000000000000000..b80426aed9c223f91dd7c21ca7b7adf3970eaf08 GIT binary patch literal 13161 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

Ba-&G90t!Xn@kyLonFxMFEryC-D-mGYo7DP7G zHuN3Cu0oy5 z1ya(pbMoCUk56yT*tv?U`!}oPGJfGyap6vOLJ3j;4_tLooi^EgHnh~b)su|2R(jFv zKZj`Q6|Ck{`Jw5+I$j`z$j_eW6Zn7q3mVfID`npZqR4)Sh6nQsvMbb`@Xd%yy9@#o z>$U4nWFm+b18x}rVKj>YX7h!Pa}s=GExSBD+;2>De7AR=8LoK8I{*Fpx0Y(q{M%C& z#{>m)LsrCZ*x>!y&h9PA$^21s9Evq;=~C0DVl|`S%N>bYPymj2*T73Np4u|nsvM8{ zi#rv;xLWDDe;FfTa)OYD7KF2`=#zzEL=VrMq`-W@IQO%GI)RB_Rj7i>{=w~@kY1_B zs{u^qew-T}kwslL%s$(ufrVzHb*qs9F?&eT#P6?2@`Fkfm<3oD<(Y@rC52s(x2&up z0I3_(gn*6+_jsE*P%s!cfukFI#UZk-y%1m>g9wHD)S@E{@o%+5!^w&Ni}R5J<%6*= zicH?dvGX(V>vFveI!c3(T>ity<_JMz?wbel*!p94Zs9EF8R(zacTsUCS5B&Lkdr<_ z-aAc;C1)^gshNf#1KHVOi|K0?{*<+|zhs8&zR2&^@{-Um&^-Cx8d+1wF^#Uf>si43 zuLqpF0(b}_!CX8%@O!TexkRNfyj(2ZiP`=HHI z=C>)9GHB*BlSFNJ?P!ZC;V+?ywx%=B=;P2Ha;5k4mh+6Vp}}eN`+ZiT4ql(^{Grl5 zLzp#naaGEF%`HJ(W>rQce062(y<^VPvqgrarrx#f>?*R6)+2sRNxjS4Af{wNWbZPT zbp>KUR(UyFO52T&0`f}@%<-E|4 z7rlACzr(vey}cOLlR!5Tkh|0x07i&QvGc@`K#M>Jc%nQRDjQ_ZWkYRQ!3Q<7O0L;N zR08$N*K1UF`pG}2n_;HIkl0MiH+=v=LRClG&)fC~S73|8Hly@i$QiAAfN7>A3F*S2 z_;BJolUbgCQ7wsw?%)3+;r)L%>HarQ?|)SO&-}&zvCIG1<$s*y|3dQp|Hnz>P#BA_ zhKBPfQWi936YKq#UoaRNL!pB;ru84wAcP)Et8g{!@&7FZDxn)C=H}*TL_V(a3p~S; zA~JJ>ykcTx+>q?5Fs#8VmBiB0Gcq#Tkd#3y5nOXW#zIK#IRBq`&!fBA+=vo72?NHZ zPqgP{peIXc!rIuJ)Xr@8*(Y9p zd(K4EAqhE^x@Cr)X+ zip=_L$W4>&)uztFB}xV>PJ4lu#MY0k0f79<=O1e7KI3xUO6NW2_~Y>5@xSSC0MN$4 zmV+s&U+F4VO51&4Y;;+UMi=FpeR^tPpVL|1NusVQfc(M!{IRu~U(jyhj%ODs2L39` zc*rcb*4GhQHJOq2_GMyRcHB#9ni^utvfS#+%6hq6<(1)r0fAh{xMzy7yfUK?-1E-J zr~h09Y;tbO+`7^`JBy2`h|=2}-jnguhijR|U9=nE2rdUmwb}FU?sxGCOcO$bsCh`%axn z_YhyClr=CpltJ}pV9gFO*^c%TYY`{buX;1+G_Q%GkV_M$p($Y>-@JU5bV<@*mv_ggsUp$X^B zYEl&sHF|dR>(h&^SlLSVLZ0zb{a9YBSo09l*#**AVa#OCmz~#C%4sG=-Np`yo!;UF z?=3nYYBtUV5~siwizj4#RvZwjgC2J?p;492(!F1fLlK&;)4kK}-QBIe=i~myG|}!C zwov5iH-`AL^xC|>VN3GZ*FwA6yZfuyx=(aDD=sh1CX5xoM)M9$oady#cKPGFJBzYM z#>256EqI;@I%u+*UkbkK=F?QKG<3vvoV0SxhDrydy!?k##7eRYM#!b+kuIH~e%Jl>pH#+>$?wA>Xp$^4^qCQR@4ZXzME6sCK5s!NtsQ`%k%tQ1C zq7EQ;e)=#64=fp!rec59czu4=id)4I#U%gY@)uShR9=nY`GDqPh2CFgjN@smtc*N| zCbmSZ@^9)lpqEuoKFjJB6`F052o+=)_JUQjAC8zH1b-)z{oexo|4!e>(kxp)w>pGT T7Y}D=uv8Q@rU#+xyPrIvq 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 Dkk5-l literal 0 HcmV?d00001 diff --git a/verify_ui.py b/verify_ui.py new file mode 100644 index 0000000..28d8b9c --- /dev/null +++ b/verify_ui.py @@ -0,0 +1,48 @@ + +import sys +import os + +# Set offscreen platform for headless environment +os.environ["QT_QPA_PLATFORM"] = "offscreen" + +from PySide6.QtWidgets import QApplication +from src.ui.stats_dialog import StatsDialog +from unittest.mock import MagicMock + +def verify(): + app = QApplication(sys.argv) + + # Mock DataStore + db = MagicMock() + db.get_affection_points.return_value = 150 + db.get_stat.return_value = 25 + db.get_unlocked_achievements.return_value = ["first_friend"] + db.get_recent_activity.return_value = [ + (1, "2023-10-27 10:00:00", "app_start", "Приложение запущено"), + (2, "2023-10-27 10:05:00", "feed", "Котик покормлен"), + (3, "2023-10-27 10:10:00", "achievement", "Открыто достижение: Первый друг") + ] + + dialog = StatsDialog(db) + dialog.show() + + # Process events to ensure layout is done + app.processEvents() + + # Take screenshot of the first tab + pixmap = dialog.grab() + os.makedirs("verification/screenshots", exist_ok=True) + pixmap.save("verification/screenshots/stats_dialog_progress.png") + print("Screenshot saved to verification/screenshots/stats_dialog_progress.png") + + # Switch to the second tab (History) + dialog.tabs.setCurrentIndex(1) + app.processEvents() + + # Take screenshot of the second tab + pixmap = dialog.grab() + pixmap.save("verification/screenshots/stats_dialog_history.png") + print("Screenshot saved to verification/screenshots/stats_dialog_history.png") + +if __name__ == "__main__": + verify()